diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java new file mode 100644 index 0000000..4670df3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 集中器相关日志 + */ +public class ProjectDict extends AbstractDictMap { + public static final String PROJECT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + @Override + public void init() { + put("projectName","项目名称"); + put("projectSimpleName","项目简称"); + put("projectManager","项目经理"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java new file mode 100644 index 0000000..4670df3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 集中器相关日志 + */ +public class ProjectDict extends AbstractDictMap { + public static final String PROJECT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + @Override + public void init() { + put("projectName","项目名称"); + put("projectSimpleName","项目简称"); + put("projectManager","项目经理"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java new file mode 100644 index 0000000..7981a17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dto; + +/** + * 用于设备类型展示 + * @author test203 + * @date 2020-04-03 + */ +public class DeviceTypeDto { + private Long id; + private String productName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java new file mode 100644 index 0000000..4670df3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 集中器相关日志 + */ +public class ProjectDict extends AbstractDictMap { + public static final String PROJECT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + @Override + public void init() { + put("projectName","项目名称"); + put("projectSimpleName","项目简称"); + put("projectManager","项目经理"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java new file mode 100644 index 0000000..7981a17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dto; + +/** + * 用于设备类型展示 + * @author test203 + * @date 2020-04-03 + */ +public class DeviceTypeDto { + private Long id; + private String productName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java new file mode 100644 index 0000000..f254585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java @@ -0,0 +1,361 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.math.BigDecimal; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; + +/** + *

+ * 管理员表 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@TableName("sys_user") +public class Account extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + /** + * 头像 + */ + private String avatar; + /** + * 账号 + */ + private String account; + /** + * 密码 + */ + private String password; + /** + * md5密码盐 + */ + private String salt; + /** + * 名字 + */ + private String name; + /** + * 生日 + */ + private Date birthday; + /** + * 性别(1:男 2:女) + */ + private String sex; + /** + * 电子邮件 + */ + private String email; + /** + * 电话 + */ + private String phone; + /** + * 角色id + */ + private String roleid; + /** + * 部门id + */ + private Long deptid; + /** + * 状态(1:启用 2:冻结 3:删除) + */ + private String status; + /** + * 创建时间 + */ + private Date createtime; + /** + * 保留字段 + */ + private Integer version; + private String targetid; + private String targetname; + @TableField("password_sync") + private String passwordSync; + @TableField("IS_SYNC") + private Integer isSync; + private String simplename; + /** + * 同步组织ID + */ + @TableField("TARGET_DEPTID_SYNC") + private String targetDeptidSync; + @TableField("LOGIN_IP") + private String loginIp; + @TableField("LOGIN_MAC") + private String loginMac; + /** + * 最后在线时间 + */ + @TableField("LAST_TIME") + private Date lastTime; + /** + * 经度 + */ + @TableField("POSITION_LNG") + private BigDecimal positionLng; + /** + * 纬度 + */ + @TableField("POSITION_LAT") + private BigDecimal positionLat; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt() { + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getRoleid() { + return roleid; + } + + public void setRoleid(String roleid) { + this.roleid = roleid; + } + + public Long getDeptid() { + return deptid; + } + + public void setDeptid(Long deptid) { + this.deptid = deptid; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + public String getTargetid() { + return targetid; + } + + public void setTargetid(String targetid) { + this.targetid = targetid; + } + + public String getTargetname() { + return targetname; + } + + public void setTargetname(String targetname) { + this.targetname = targetname; + } + + public String getPasswordSync() { + return passwordSync; + } + + public void setPasswordSync(String passwordSync) { + this.passwordSync = passwordSync; + } + + public Integer getIsSync() { + return isSync; + } + + public void setIsSync(Integer isSync) { + this.isSync = isSync; + } + + public String getSimplename() { + return simplename; + } + + public void setSimplename(String simplename) { + this.simplename = simplename; + } + + public String getTargetDeptidSync() { + return targetDeptidSync; + } + + public void setTargetDeptidSync(String targetDeptidSync) { + this.targetDeptidSync = targetDeptidSync; + } + + public String getLoginIp() { + return loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getLoginMac() { + return loginMac; + } + + public void setLoginMac(String loginMac) { + this.loginMac = loginMac; + } + + public Date getLastTime() { + return lastTime; + } + + public void setLastTime(Date lastTime) { + this.lastTime = lastTime; + } + + public BigDecimal getPositionLng() { + return positionLng; + } + + public void setPositionLng(BigDecimal positionLng) { + this.positionLng = positionLng; + } + + public BigDecimal getPositionLat() { + return positionLat; + } + + public void setPositionLat(BigDecimal positionLat) { + this.positionLat = positionLat; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", avatar=" + avatar + + ", account=" + account + + ", password=" + password + + ", salt=" + salt + + ", name=" + name + + ", birthday=" + birthday + + ", sex=" + sex + + ", email=" + email + + ", phone=" + phone + + ", roleid=" + roleid + + ", deptid=" + deptid + + ", status=" + status + + ", createtime=" + createtime + + ", version=" + version + + ", targetid=" + targetid + + ", targetname=" + targetname + + ", passwordSync=" + passwordSync + + ", isSync=" + isSync + + ", simplename=" + simplename + + ", targetDeptidSync=" + targetDeptidSync + + ", loginIp=" + loginIp + + ", loginMac=" + loginMac + + ", lastTime=" + lastTime + + ", positionLng=" + positionLng + + ", positionLat=" + positionLat + + "}"; + } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java new file mode 100644 index 0000000..4670df3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 集中器相关日志 + */ +public class ProjectDict extends AbstractDictMap { + public static final String PROJECT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + @Override + public void init() { + put("projectName","项目名称"); + put("projectSimpleName","项目简称"); + put("projectManager","项目经理"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java new file mode 100644 index 0000000..7981a17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dto; + +/** + * 用于设备类型展示 + * @author test203 + * @date 2020-04-03 + */ +public class DeviceTypeDto { + private Long id; + private String productName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java new file mode 100644 index 0000000..f254585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java @@ -0,0 +1,361 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.math.BigDecimal; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; + +/** + *

+ * 管理员表 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@TableName("sys_user") +public class Account extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + /** + * 头像 + */ + private String avatar; + /** + * 账号 + */ + private String account; + /** + * 密码 + */ + private String password; + /** + * md5密码盐 + */ + private String salt; + /** + * 名字 + */ + private String name; + /** + * 生日 + */ + private Date birthday; + /** + * 性别(1:男 2:女) + */ + private String sex; + /** + * 电子邮件 + */ + private String email; + /** + * 电话 + */ + private String phone; + /** + * 角色id + */ + private String roleid; + /** + * 部门id + */ + private Long deptid; + /** + * 状态(1:启用 2:冻结 3:删除) + */ + private String status; + /** + * 创建时间 + */ + private Date createtime; + /** + * 保留字段 + */ + private Integer version; + private String targetid; + private String targetname; + @TableField("password_sync") + private String passwordSync; + @TableField("IS_SYNC") + private Integer isSync; + private String simplename; + /** + * 同步组织ID + */ + @TableField("TARGET_DEPTID_SYNC") + private String targetDeptidSync; + @TableField("LOGIN_IP") + private String loginIp; + @TableField("LOGIN_MAC") + private String loginMac; + /** + * 最后在线时间 + */ + @TableField("LAST_TIME") + private Date lastTime; + /** + * 经度 + */ + @TableField("POSITION_LNG") + private BigDecimal positionLng; + /** + * 纬度 + */ + @TableField("POSITION_LAT") + private BigDecimal positionLat; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt() { + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getRoleid() { + return roleid; + } + + public void setRoleid(String roleid) { + this.roleid = roleid; + } + + public Long getDeptid() { + return deptid; + } + + public void setDeptid(Long deptid) { + this.deptid = deptid; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + public String getTargetid() { + return targetid; + } + + public void setTargetid(String targetid) { + this.targetid = targetid; + } + + public String getTargetname() { + return targetname; + } + + public void setTargetname(String targetname) { + this.targetname = targetname; + } + + public String getPasswordSync() { + return passwordSync; + } + + public void setPasswordSync(String passwordSync) { + this.passwordSync = passwordSync; + } + + public Integer getIsSync() { + return isSync; + } + + public void setIsSync(Integer isSync) { + this.isSync = isSync; + } + + public String getSimplename() { + return simplename; + } + + public void setSimplename(String simplename) { + this.simplename = simplename; + } + + public String getTargetDeptidSync() { + return targetDeptidSync; + } + + public void setTargetDeptidSync(String targetDeptidSync) { + this.targetDeptidSync = targetDeptidSync; + } + + public String getLoginIp() { + return loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getLoginMac() { + return loginMac; + } + + public void setLoginMac(String loginMac) { + this.loginMac = loginMac; + } + + public Date getLastTime() { + return lastTime; + } + + public void setLastTime(Date lastTime) { + this.lastTime = lastTime; + } + + public BigDecimal getPositionLng() { + return positionLng; + } + + public void setPositionLng(BigDecimal positionLng) { + this.positionLng = positionLng; + } + + public BigDecimal getPositionLat() { + return positionLat; + } + + public void setPositionLat(BigDecimal positionLat) { + this.positionLat = positionLat; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", avatar=" + avatar + + ", account=" + account + + ", password=" + password + + ", salt=" + salt + + ", name=" + name + + ", birthday=" + birthday + + ", sex=" + sex + + ", email=" + email + + ", phone=" + phone + + ", roleid=" + roleid + + ", deptid=" + deptid + + ", status=" + status + + ", createtime=" + createtime + + ", version=" + version + + ", targetid=" + targetid + + ", targetname=" + targetname + + ", passwordSync=" + passwordSync + + ", isSync=" + isSync + + ", simplename=" + simplename + + ", targetDeptidSync=" + targetDeptidSync + + ", loginIp=" + loginIp + + ", loginMac=" + loginMac + + ", lastTime=" + lastTime + + ", positionLng=" + positionLng + + ", positionLat=" + positionLat + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java new file mode 100644 index 0000000..81516b7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -0,0 +1,110 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_batch") +public class Batch extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_number") + private Long batchNumber; + @TableField("batch_count") + private Long batchCount; + @TableField("contract_id") + private Long contractId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("task_id") + private Long taskId; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(Long batchNumber) { + this.batchNumber = batchNumber; + } + + public Long getBatchCount() { + return batchCount; + } + + public void setBatchCount(Long batchCount) { + this.batchCount = batchCount; + } + + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Batch{" + + "id=" + id + + ", batchNumber=" + batchNumber + + ", batchCount=" + batchCount + + ", contractId=" + contractId + + ", taskId=" + taskId + + ", createtime=" + createtime + + "}"; + } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java new file mode 100644 index 0000000..4670df3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 集中器相关日志 + */ +public class ProjectDict extends AbstractDictMap { + public static final String PROJECT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + @Override + public void init() { + put("projectName","项目名称"); + put("projectSimpleName","项目简称"); + put("projectManager","项目经理"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java new file mode 100644 index 0000000..7981a17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dto; + +/** + * 用于设备类型展示 + * @author test203 + * @date 2020-04-03 + */ +public class DeviceTypeDto { + private Long id; + private String productName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java new file mode 100644 index 0000000..f254585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java @@ -0,0 +1,361 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.math.BigDecimal; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; + +/** + *

+ * 管理员表 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@TableName("sys_user") +public class Account extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + /** + * 头像 + */ + private String avatar; + /** + * 账号 + */ + private String account; + /** + * 密码 + */ + private String password; + /** + * md5密码盐 + */ + private String salt; + /** + * 名字 + */ + private String name; + /** + * 生日 + */ + private Date birthday; + /** + * 性别(1:男 2:女) + */ + private String sex; + /** + * 电子邮件 + */ + private String email; + /** + * 电话 + */ + private String phone; + /** + * 角色id + */ + private String roleid; + /** + * 部门id + */ + private Long deptid; + /** + * 状态(1:启用 2:冻结 3:删除) + */ + private String status; + /** + * 创建时间 + */ + private Date createtime; + /** + * 保留字段 + */ + private Integer version; + private String targetid; + private String targetname; + @TableField("password_sync") + private String passwordSync; + @TableField("IS_SYNC") + private Integer isSync; + private String simplename; + /** + * 同步组织ID + */ + @TableField("TARGET_DEPTID_SYNC") + private String targetDeptidSync; + @TableField("LOGIN_IP") + private String loginIp; + @TableField("LOGIN_MAC") + private String loginMac; + /** + * 最后在线时间 + */ + @TableField("LAST_TIME") + private Date lastTime; + /** + * 经度 + */ + @TableField("POSITION_LNG") + private BigDecimal positionLng; + /** + * 纬度 + */ + @TableField("POSITION_LAT") + private BigDecimal positionLat; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt() { + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getRoleid() { + return roleid; + } + + public void setRoleid(String roleid) { + this.roleid = roleid; + } + + public Long getDeptid() { + return deptid; + } + + public void setDeptid(Long deptid) { + this.deptid = deptid; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + public String getTargetid() { + return targetid; + } + + public void setTargetid(String targetid) { + this.targetid = targetid; + } + + public String getTargetname() { + return targetname; + } + + public void setTargetname(String targetname) { + this.targetname = targetname; + } + + public String getPasswordSync() { + return passwordSync; + } + + public void setPasswordSync(String passwordSync) { + this.passwordSync = passwordSync; + } + + public Integer getIsSync() { + return isSync; + } + + public void setIsSync(Integer isSync) { + this.isSync = isSync; + } + + public String getSimplename() { + return simplename; + } + + public void setSimplename(String simplename) { + this.simplename = simplename; + } + + public String getTargetDeptidSync() { + return targetDeptidSync; + } + + public void setTargetDeptidSync(String targetDeptidSync) { + this.targetDeptidSync = targetDeptidSync; + } + + public String getLoginIp() { + return loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getLoginMac() { + return loginMac; + } + + public void setLoginMac(String loginMac) { + this.loginMac = loginMac; + } + + public Date getLastTime() { + return lastTime; + } + + public void setLastTime(Date lastTime) { + this.lastTime = lastTime; + } + + public BigDecimal getPositionLng() { + return positionLng; + } + + public void setPositionLng(BigDecimal positionLng) { + this.positionLng = positionLng; + } + + public BigDecimal getPositionLat() { + return positionLat; + } + + public void setPositionLat(BigDecimal positionLat) { + this.positionLat = positionLat; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", avatar=" + avatar + + ", account=" + account + + ", password=" + password + + ", salt=" + salt + + ", name=" + name + + ", birthday=" + birthday + + ", sex=" + sex + + ", email=" + email + + ", phone=" + phone + + ", roleid=" + roleid + + ", deptid=" + deptid + + ", status=" + status + + ", createtime=" + createtime + + ", version=" + version + + ", targetid=" + targetid + + ", targetname=" + targetname + + ", passwordSync=" + passwordSync + + ", isSync=" + isSync + + ", simplename=" + simplename + + ", targetDeptidSync=" + targetDeptidSync + + ", loginIp=" + loginIp + + ", loginMac=" + loginMac + + ", lastTime=" + lastTime + + ", positionLng=" + positionLng + + ", positionLat=" + positionLat + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java new file mode 100644 index 0000000..81516b7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -0,0 +1,110 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_batch") +public class Batch extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_number") + private Long batchNumber; + @TableField("batch_count") + private Long batchCount; + @TableField("contract_id") + private Long contractId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("task_id") + private Long taskId; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(Long batchNumber) { + this.batchNumber = batchNumber; + } + + public Long getBatchCount() { + return batchCount; + } + + public void setBatchCount(Long batchCount) { + this.batchCount = batchCount; + } + + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Batch{" + + "id=" + id + + ", batchNumber=" + batchNumber + + ", batchCount=" + batchCount + + ", contractId=" + contractId + + ", taskId=" + taskId + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java new file mode 100644 index 0000000..893a1ed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -0,0 +1,186 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_contract") +public class Contract extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("contract_number") + private String contractNumber; + @TableField("contract_name") + private String contractName; + @TableField("contract_content") + private String contractContent; + @TableField("contract_amount") + private String contractAmount; + @TableField("external_project_apply") + private String externalProjectApply; + @TableField("external_contract_apply") + private String externalContractApply; + @TableField("principal") + private String principal; + @TableField("external_check_apply") + private String externalCheckApply; + @TableField("contract_factory") + private String contractFactory; + @TableField("createtime") + private Date createtime; + @TableField(exist = false) + private String paymentStatus; + @TableField(exist = false) + private String netFlow; + @TableField("deptid") + private String deptid; + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getContractName() { + return contractName; + } + + public void setContractName(String contractName) { + this.contractName = contractName; + } + + public String getContractContent() { + return contractContent; + } + + public void setContractContent(String contractContent) { + this.contractContent = contractContent; + } + + public String getContractAmount() { + return contractAmount; + } + + public void setContractAmount(String contractAmount) { + this.contractAmount = contractAmount; + } + + public String getExternalProjectApply() { + return externalProjectApply; + } + + public void setExternalProjectApply(String externalProjectApply) { + this.externalProjectApply = externalProjectApply; + } + + public String getExternalContractApply() { + return externalContractApply; + } + + public void setExternalContractApply(String externalContractApply) { + this.externalContractApply = externalContractApply; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalCheckApply() { + return externalCheckApply; + } + + public void setExternalCheckApply(String externalCheckApply) { + this.externalCheckApply = externalCheckApply; + } + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public String getContractFactory() { + return contractFactory; + } + + public void setContractFactory(String contractFactory) { + this.contractFactory = contractFactory; + } + + public String getNetFlow() { + return netFlow; + } + + public void setNetFlow(String netFlow) { + this.netFlow = netFlow; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Contract{" + + "contractNumber=" + contractNumber + + ", contractName=" + contractName + + ", contractContent=" + contractContent + + ", contractAmount=" + contractAmount + + ", externalProjectApply=" + externalProjectApply + + ", externalContractApply=" + externalContractApply + + ", principal=" + principal + + ", id=" + id + + "}"; + } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java new file mode 100644 index 0000000..4670df3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 集中器相关日志 + */ +public class ProjectDict extends AbstractDictMap { + public static final String PROJECT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + @Override + public void init() { + put("projectName","项目名称"); + put("projectSimpleName","项目简称"); + put("projectManager","项目经理"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java new file mode 100644 index 0000000..7981a17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dto; + +/** + * 用于设备类型展示 + * @author test203 + * @date 2020-04-03 + */ +public class DeviceTypeDto { + private Long id; + private String productName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java new file mode 100644 index 0000000..f254585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java @@ -0,0 +1,361 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.math.BigDecimal; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; + +/** + *

+ * 管理员表 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@TableName("sys_user") +public class Account extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + /** + * 头像 + */ + private String avatar; + /** + * 账号 + */ + private String account; + /** + * 密码 + */ + private String password; + /** + * md5密码盐 + */ + private String salt; + /** + * 名字 + */ + private String name; + /** + * 生日 + */ + private Date birthday; + /** + * 性别(1:男 2:女) + */ + private String sex; + /** + * 电子邮件 + */ + private String email; + /** + * 电话 + */ + private String phone; + /** + * 角色id + */ + private String roleid; + /** + * 部门id + */ + private Long deptid; + /** + * 状态(1:启用 2:冻结 3:删除) + */ + private String status; + /** + * 创建时间 + */ + private Date createtime; + /** + * 保留字段 + */ + private Integer version; + private String targetid; + private String targetname; + @TableField("password_sync") + private String passwordSync; + @TableField("IS_SYNC") + private Integer isSync; + private String simplename; + /** + * 同步组织ID + */ + @TableField("TARGET_DEPTID_SYNC") + private String targetDeptidSync; + @TableField("LOGIN_IP") + private String loginIp; + @TableField("LOGIN_MAC") + private String loginMac; + /** + * 最后在线时间 + */ + @TableField("LAST_TIME") + private Date lastTime; + /** + * 经度 + */ + @TableField("POSITION_LNG") + private BigDecimal positionLng; + /** + * 纬度 + */ + @TableField("POSITION_LAT") + private BigDecimal positionLat; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt() { + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getRoleid() { + return roleid; + } + + public void setRoleid(String roleid) { + this.roleid = roleid; + } + + public Long getDeptid() { + return deptid; + } + + public void setDeptid(Long deptid) { + this.deptid = deptid; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + public String getTargetid() { + return targetid; + } + + public void setTargetid(String targetid) { + this.targetid = targetid; + } + + public String getTargetname() { + return targetname; + } + + public void setTargetname(String targetname) { + this.targetname = targetname; + } + + public String getPasswordSync() { + return passwordSync; + } + + public void setPasswordSync(String passwordSync) { + this.passwordSync = passwordSync; + } + + public Integer getIsSync() { + return isSync; + } + + public void setIsSync(Integer isSync) { + this.isSync = isSync; + } + + public String getSimplename() { + return simplename; + } + + public void setSimplename(String simplename) { + this.simplename = simplename; + } + + public String getTargetDeptidSync() { + return targetDeptidSync; + } + + public void setTargetDeptidSync(String targetDeptidSync) { + this.targetDeptidSync = targetDeptidSync; + } + + public String getLoginIp() { + return loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getLoginMac() { + return loginMac; + } + + public void setLoginMac(String loginMac) { + this.loginMac = loginMac; + } + + public Date getLastTime() { + return lastTime; + } + + public void setLastTime(Date lastTime) { + this.lastTime = lastTime; + } + + public BigDecimal getPositionLng() { + return positionLng; + } + + public void setPositionLng(BigDecimal positionLng) { + this.positionLng = positionLng; + } + + public BigDecimal getPositionLat() { + return positionLat; + } + + public void setPositionLat(BigDecimal positionLat) { + this.positionLat = positionLat; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", avatar=" + avatar + + ", account=" + account + + ", password=" + password + + ", salt=" + salt + + ", name=" + name + + ", birthday=" + birthday + + ", sex=" + sex + + ", email=" + email + + ", phone=" + phone + + ", roleid=" + roleid + + ", deptid=" + deptid + + ", status=" + status + + ", createtime=" + createtime + + ", version=" + version + + ", targetid=" + targetid + + ", targetname=" + targetname + + ", passwordSync=" + passwordSync + + ", isSync=" + isSync + + ", simplename=" + simplename + + ", targetDeptidSync=" + targetDeptidSync + + ", loginIp=" + loginIp + + ", loginMac=" + loginMac + + ", lastTime=" + lastTime + + ", positionLng=" + positionLng + + ", positionLat=" + positionLat + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java new file mode 100644 index 0000000..81516b7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -0,0 +1,110 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_batch") +public class Batch extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_number") + private Long batchNumber; + @TableField("batch_count") + private Long batchCount; + @TableField("contract_id") + private Long contractId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("task_id") + private Long taskId; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(Long batchNumber) { + this.batchNumber = batchNumber; + } + + public Long getBatchCount() { + return batchCount; + } + + public void setBatchCount(Long batchCount) { + this.batchCount = batchCount; + } + + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Batch{" + + "id=" + id + + ", batchNumber=" + batchNumber + + ", batchCount=" + batchCount + + ", contractId=" + contractId + + ", taskId=" + taskId + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java new file mode 100644 index 0000000..893a1ed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -0,0 +1,186 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_contract") +public class Contract extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("contract_number") + private String contractNumber; + @TableField("contract_name") + private String contractName; + @TableField("contract_content") + private String contractContent; + @TableField("contract_amount") + private String contractAmount; + @TableField("external_project_apply") + private String externalProjectApply; + @TableField("external_contract_apply") + private String externalContractApply; + @TableField("principal") + private String principal; + @TableField("external_check_apply") + private String externalCheckApply; + @TableField("contract_factory") + private String contractFactory; + @TableField("createtime") + private Date createtime; + @TableField(exist = false) + private String paymentStatus; + @TableField(exist = false) + private String netFlow; + @TableField("deptid") + private String deptid; + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getContractName() { + return contractName; + } + + public void setContractName(String contractName) { + this.contractName = contractName; + } + + public String getContractContent() { + return contractContent; + } + + public void setContractContent(String contractContent) { + this.contractContent = contractContent; + } + + public String getContractAmount() { + return contractAmount; + } + + public void setContractAmount(String contractAmount) { + this.contractAmount = contractAmount; + } + + public String getExternalProjectApply() { + return externalProjectApply; + } + + public void setExternalProjectApply(String externalProjectApply) { + this.externalProjectApply = externalProjectApply; + } + + public String getExternalContractApply() { + return externalContractApply; + } + + public void setExternalContractApply(String externalContractApply) { + this.externalContractApply = externalContractApply; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalCheckApply() { + return externalCheckApply; + } + + public void setExternalCheckApply(String externalCheckApply) { + this.externalCheckApply = externalCheckApply; + } + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public String getContractFactory() { + return contractFactory; + } + + public void setContractFactory(String contractFactory) { + this.contractFactory = contractFactory; + } + + public String getNetFlow() { + return netFlow; + } + + public void setNetFlow(String netFlow) { + this.netFlow = netFlow; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Contract{" + + "contractNumber=" + contractNumber + + ", contractName=" + contractName + + ", contractContent=" + contractContent + + ", contractAmount=" + contractAmount + + ", externalProjectApply=" + externalProjectApply + + ", externalContractApply=" + externalContractApply + + ", principal=" + principal + + ", id=" + id + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java new file mode 100644 index 0000000..8718d91 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -0,0 +1,150 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_device") +public class Device extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_id") + private Long batchId; + private String devcode; + @TableField("devtype_id") + private Long devtypeId; + @TableField("is_send") + private String isSend; + private String longitude; + private String latitude; + @TableField("install_height") + private String installHeight; + private String iccid; + private Long imei; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public Long getImei() { + return imei; + } + + public void setImei(Long imei) { + this.imei = imei; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Device{" + + "id=" + id + + ", batchId=" + batchId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", isSend=" + isSend + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", installHeight=" + installHeight + + ", iccid=" + iccid + + ", imei=" + imei + + ", createtime=" + createtime + + "}"; + } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java new file mode 100644 index 0000000..4670df3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 集中器相关日志 + */ +public class ProjectDict extends AbstractDictMap { + public static final String PROJECT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + @Override + public void init() { + put("projectName","项目名称"); + put("projectSimpleName","项目简称"); + put("projectManager","项目经理"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java new file mode 100644 index 0000000..7981a17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dto; + +/** + * 用于设备类型展示 + * @author test203 + * @date 2020-04-03 + */ +public class DeviceTypeDto { + private Long id; + private String productName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java new file mode 100644 index 0000000..f254585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java @@ -0,0 +1,361 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.math.BigDecimal; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; + +/** + *

+ * 管理员表 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@TableName("sys_user") +public class Account extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + /** + * 头像 + */ + private String avatar; + /** + * 账号 + */ + private String account; + /** + * 密码 + */ + private String password; + /** + * md5密码盐 + */ + private String salt; + /** + * 名字 + */ + private String name; + /** + * 生日 + */ + private Date birthday; + /** + * 性别(1:男 2:女) + */ + private String sex; + /** + * 电子邮件 + */ + private String email; + /** + * 电话 + */ + private String phone; + /** + * 角色id + */ + private String roleid; + /** + * 部门id + */ + private Long deptid; + /** + * 状态(1:启用 2:冻结 3:删除) + */ + private String status; + /** + * 创建时间 + */ + private Date createtime; + /** + * 保留字段 + */ + private Integer version; + private String targetid; + private String targetname; + @TableField("password_sync") + private String passwordSync; + @TableField("IS_SYNC") + private Integer isSync; + private String simplename; + /** + * 同步组织ID + */ + @TableField("TARGET_DEPTID_SYNC") + private String targetDeptidSync; + @TableField("LOGIN_IP") + private String loginIp; + @TableField("LOGIN_MAC") + private String loginMac; + /** + * 最后在线时间 + */ + @TableField("LAST_TIME") + private Date lastTime; + /** + * 经度 + */ + @TableField("POSITION_LNG") + private BigDecimal positionLng; + /** + * 纬度 + */ + @TableField("POSITION_LAT") + private BigDecimal positionLat; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt() { + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getRoleid() { + return roleid; + } + + public void setRoleid(String roleid) { + this.roleid = roleid; + } + + public Long getDeptid() { + return deptid; + } + + public void setDeptid(Long deptid) { + this.deptid = deptid; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + public String getTargetid() { + return targetid; + } + + public void setTargetid(String targetid) { + this.targetid = targetid; + } + + public String getTargetname() { + return targetname; + } + + public void setTargetname(String targetname) { + this.targetname = targetname; + } + + public String getPasswordSync() { + return passwordSync; + } + + public void setPasswordSync(String passwordSync) { + this.passwordSync = passwordSync; + } + + public Integer getIsSync() { + return isSync; + } + + public void setIsSync(Integer isSync) { + this.isSync = isSync; + } + + public String getSimplename() { + return simplename; + } + + public void setSimplename(String simplename) { + this.simplename = simplename; + } + + public String getTargetDeptidSync() { + return targetDeptidSync; + } + + public void setTargetDeptidSync(String targetDeptidSync) { + this.targetDeptidSync = targetDeptidSync; + } + + public String getLoginIp() { + return loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getLoginMac() { + return loginMac; + } + + public void setLoginMac(String loginMac) { + this.loginMac = loginMac; + } + + public Date getLastTime() { + return lastTime; + } + + public void setLastTime(Date lastTime) { + this.lastTime = lastTime; + } + + public BigDecimal getPositionLng() { + return positionLng; + } + + public void setPositionLng(BigDecimal positionLng) { + this.positionLng = positionLng; + } + + public BigDecimal getPositionLat() { + return positionLat; + } + + public void setPositionLat(BigDecimal positionLat) { + this.positionLat = positionLat; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", avatar=" + avatar + + ", account=" + account + + ", password=" + password + + ", salt=" + salt + + ", name=" + name + + ", birthday=" + birthday + + ", sex=" + sex + + ", email=" + email + + ", phone=" + phone + + ", roleid=" + roleid + + ", deptid=" + deptid + + ", status=" + status + + ", createtime=" + createtime + + ", version=" + version + + ", targetid=" + targetid + + ", targetname=" + targetname + + ", passwordSync=" + passwordSync + + ", isSync=" + isSync + + ", simplename=" + simplename + + ", targetDeptidSync=" + targetDeptidSync + + ", loginIp=" + loginIp + + ", loginMac=" + loginMac + + ", lastTime=" + lastTime + + ", positionLng=" + positionLng + + ", positionLat=" + positionLat + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java new file mode 100644 index 0000000..81516b7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -0,0 +1,110 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_batch") +public class Batch extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_number") + private Long batchNumber; + @TableField("batch_count") + private Long batchCount; + @TableField("contract_id") + private Long contractId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("task_id") + private Long taskId; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(Long batchNumber) { + this.batchNumber = batchNumber; + } + + public Long getBatchCount() { + return batchCount; + } + + public void setBatchCount(Long batchCount) { + this.batchCount = batchCount; + } + + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Batch{" + + "id=" + id + + ", batchNumber=" + batchNumber + + ", batchCount=" + batchCount + + ", contractId=" + contractId + + ", taskId=" + taskId + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java new file mode 100644 index 0000000..893a1ed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -0,0 +1,186 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_contract") +public class Contract extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("contract_number") + private String contractNumber; + @TableField("contract_name") + private String contractName; + @TableField("contract_content") + private String contractContent; + @TableField("contract_amount") + private String contractAmount; + @TableField("external_project_apply") + private String externalProjectApply; + @TableField("external_contract_apply") + private String externalContractApply; + @TableField("principal") + private String principal; + @TableField("external_check_apply") + private String externalCheckApply; + @TableField("contract_factory") + private String contractFactory; + @TableField("createtime") + private Date createtime; + @TableField(exist = false) + private String paymentStatus; + @TableField(exist = false) + private String netFlow; + @TableField("deptid") + private String deptid; + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getContractName() { + return contractName; + } + + public void setContractName(String contractName) { + this.contractName = contractName; + } + + public String getContractContent() { + return contractContent; + } + + public void setContractContent(String contractContent) { + this.contractContent = contractContent; + } + + public String getContractAmount() { + return contractAmount; + } + + public void setContractAmount(String contractAmount) { + this.contractAmount = contractAmount; + } + + public String getExternalProjectApply() { + return externalProjectApply; + } + + public void setExternalProjectApply(String externalProjectApply) { + this.externalProjectApply = externalProjectApply; + } + + public String getExternalContractApply() { + return externalContractApply; + } + + public void setExternalContractApply(String externalContractApply) { + this.externalContractApply = externalContractApply; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalCheckApply() { + return externalCheckApply; + } + + public void setExternalCheckApply(String externalCheckApply) { + this.externalCheckApply = externalCheckApply; + } + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public String getContractFactory() { + return contractFactory; + } + + public void setContractFactory(String contractFactory) { + this.contractFactory = contractFactory; + } + + public String getNetFlow() { + return netFlow; + } + + public void setNetFlow(String netFlow) { + this.netFlow = netFlow; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Contract{" + + "contractNumber=" + contractNumber + + ", contractName=" + contractName + + ", contractContent=" + contractContent + + ", contractAmount=" + contractAmount + + ", externalProjectApply=" + externalProjectApply + + ", externalContractApply=" + externalContractApply + + ", principal=" + principal + + ", id=" + id + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java new file mode 100644 index 0000000..8718d91 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -0,0 +1,150 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_device") +public class Device extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_id") + private Long batchId; + private String devcode; + @TableField("devtype_id") + private Long devtypeId; + @TableField("is_send") + private String isSend; + private String longitude; + private String latitude; + @TableField("install_height") + private String installHeight; + private String iccid; + private Long imei; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public Long getImei() { + return imei; + } + + public void setImei(Long imei) { + this.imei = imei; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Device{" + + "id=" + id + + ", batchId=" + batchId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", isSend=" + isSend + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", installHeight=" + installHeight + + ", iccid=" + iccid + + ", imei=" + imei + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java new file mode 100644 index 0000000..870c36f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_payments") +public class Payments extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @TableField("paytime") + private Date paytime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getPaytime() { + return paytime; + } + + public void setPaytime(Date paytime) { + this.paytime = paytime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Payments{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", paytime=" + paytime + + "}"; + } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java new file mode 100644 index 0000000..4670df3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 集中器相关日志 + */ +public class ProjectDict extends AbstractDictMap { + public static final String PROJECT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + @Override + public void init() { + put("projectName","项目名称"); + put("projectSimpleName","项目简称"); + put("projectManager","项目经理"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java new file mode 100644 index 0000000..7981a17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dto; + +/** + * 用于设备类型展示 + * @author test203 + * @date 2020-04-03 + */ +public class DeviceTypeDto { + private Long id; + private String productName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java new file mode 100644 index 0000000..f254585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java @@ -0,0 +1,361 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.math.BigDecimal; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; + +/** + *

+ * 管理员表 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@TableName("sys_user") +public class Account extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + /** + * 头像 + */ + private String avatar; + /** + * 账号 + */ + private String account; + /** + * 密码 + */ + private String password; + /** + * md5密码盐 + */ + private String salt; + /** + * 名字 + */ + private String name; + /** + * 生日 + */ + private Date birthday; + /** + * 性别(1:男 2:女) + */ + private String sex; + /** + * 电子邮件 + */ + private String email; + /** + * 电话 + */ + private String phone; + /** + * 角色id + */ + private String roleid; + /** + * 部门id + */ + private Long deptid; + /** + * 状态(1:启用 2:冻结 3:删除) + */ + private String status; + /** + * 创建时间 + */ + private Date createtime; + /** + * 保留字段 + */ + private Integer version; + private String targetid; + private String targetname; + @TableField("password_sync") + private String passwordSync; + @TableField("IS_SYNC") + private Integer isSync; + private String simplename; + /** + * 同步组织ID + */ + @TableField("TARGET_DEPTID_SYNC") + private String targetDeptidSync; + @TableField("LOGIN_IP") + private String loginIp; + @TableField("LOGIN_MAC") + private String loginMac; + /** + * 最后在线时间 + */ + @TableField("LAST_TIME") + private Date lastTime; + /** + * 经度 + */ + @TableField("POSITION_LNG") + private BigDecimal positionLng; + /** + * 纬度 + */ + @TableField("POSITION_LAT") + private BigDecimal positionLat; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt() { + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getRoleid() { + return roleid; + } + + public void setRoleid(String roleid) { + this.roleid = roleid; + } + + public Long getDeptid() { + return deptid; + } + + public void setDeptid(Long deptid) { + this.deptid = deptid; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + public String getTargetid() { + return targetid; + } + + public void setTargetid(String targetid) { + this.targetid = targetid; + } + + public String getTargetname() { + return targetname; + } + + public void setTargetname(String targetname) { + this.targetname = targetname; + } + + public String getPasswordSync() { + return passwordSync; + } + + public void setPasswordSync(String passwordSync) { + this.passwordSync = passwordSync; + } + + public Integer getIsSync() { + return isSync; + } + + public void setIsSync(Integer isSync) { + this.isSync = isSync; + } + + public String getSimplename() { + return simplename; + } + + public void setSimplename(String simplename) { + this.simplename = simplename; + } + + public String getTargetDeptidSync() { + return targetDeptidSync; + } + + public void setTargetDeptidSync(String targetDeptidSync) { + this.targetDeptidSync = targetDeptidSync; + } + + public String getLoginIp() { + return loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getLoginMac() { + return loginMac; + } + + public void setLoginMac(String loginMac) { + this.loginMac = loginMac; + } + + public Date getLastTime() { + return lastTime; + } + + public void setLastTime(Date lastTime) { + this.lastTime = lastTime; + } + + public BigDecimal getPositionLng() { + return positionLng; + } + + public void setPositionLng(BigDecimal positionLng) { + this.positionLng = positionLng; + } + + public BigDecimal getPositionLat() { + return positionLat; + } + + public void setPositionLat(BigDecimal positionLat) { + this.positionLat = positionLat; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", avatar=" + avatar + + ", account=" + account + + ", password=" + password + + ", salt=" + salt + + ", name=" + name + + ", birthday=" + birthday + + ", sex=" + sex + + ", email=" + email + + ", phone=" + phone + + ", roleid=" + roleid + + ", deptid=" + deptid + + ", status=" + status + + ", createtime=" + createtime + + ", version=" + version + + ", targetid=" + targetid + + ", targetname=" + targetname + + ", passwordSync=" + passwordSync + + ", isSync=" + isSync + + ", simplename=" + simplename + + ", targetDeptidSync=" + targetDeptidSync + + ", loginIp=" + loginIp + + ", loginMac=" + loginMac + + ", lastTime=" + lastTime + + ", positionLng=" + positionLng + + ", positionLat=" + positionLat + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java new file mode 100644 index 0000000..81516b7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -0,0 +1,110 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_batch") +public class Batch extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_number") + private Long batchNumber; + @TableField("batch_count") + private Long batchCount; + @TableField("contract_id") + private Long contractId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("task_id") + private Long taskId; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(Long batchNumber) { + this.batchNumber = batchNumber; + } + + public Long getBatchCount() { + return batchCount; + } + + public void setBatchCount(Long batchCount) { + this.batchCount = batchCount; + } + + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Batch{" + + "id=" + id + + ", batchNumber=" + batchNumber + + ", batchCount=" + batchCount + + ", contractId=" + contractId + + ", taskId=" + taskId + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java new file mode 100644 index 0000000..893a1ed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -0,0 +1,186 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_contract") +public class Contract extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("contract_number") + private String contractNumber; + @TableField("contract_name") + private String contractName; + @TableField("contract_content") + private String contractContent; + @TableField("contract_amount") + private String contractAmount; + @TableField("external_project_apply") + private String externalProjectApply; + @TableField("external_contract_apply") + private String externalContractApply; + @TableField("principal") + private String principal; + @TableField("external_check_apply") + private String externalCheckApply; + @TableField("contract_factory") + private String contractFactory; + @TableField("createtime") + private Date createtime; + @TableField(exist = false) + private String paymentStatus; + @TableField(exist = false) + private String netFlow; + @TableField("deptid") + private String deptid; + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getContractName() { + return contractName; + } + + public void setContractName(String contractName) { + this.contractName = contractName; + } + + public String getContractContent() { + return contractContent; + } + + public void setContractContent(String contractContent) { + this.contractContent = contractContent; + } + + public String getContractAmount() { + return contractAmount; + } + + public void setContractAmount(String contractAmount) { + this.contractAmount = contractAmount; + } + + public String getExternalProjectApply() { + return externalProjectApply; + } + + public void setExternalProjectApply(String externalProjectApply) { + this.externalProjectApply = externalProjectApply; + } + + public String getExternalContractApply() { + return externalContractApply; + } + + public void setExternalContractApply(String externalContractApply) { + this.externalContractApply = externalContractApply; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalCheckApply() { + return externalCheckApply; + } + + public void setExternalCheckApply(String externalCheckApply) { + this.externalCheckApply = externalCheckApply; + } + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public String getContractFactory() { + return contractFactory; + } + + public void setContractFactory(String contractFactory) { + this.contractFactory = contractFactory; + } + + public String getNetFlow() { + return netFlow; + } + + public void setNetFlow(String netFlow) { + this.netFlow = netFlow; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Contract{" + + "contractNumber=" + contractNumber + + ", contractName=" + contractName + + ", contractContent=" + contractContent + + ", contractAmount=" + contractAmount + + ", externalProjectApply=" + externalProjectApply + + ", externalContractApply=" + externalContractApply + + ", principal=" + principal + + ", id=" + id + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java new file mode 100644 index 0000000..8718d91 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -0,0 +1,150 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_device") +public class Device extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_id") + private Long batchId; + private String devcode; + @TableField("devtype_id") + private Long devtypeId; + @TableField("is_send") + private String isSend; + private String longitude; + private String latitude; + @TableField("install_height") + private String installHeight; + private String iccid; + private Long imei; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public Long getImei() { + return imei; + } + + public void setImei(Long imei) { + this.imei = imei; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Device{" + + "id=" + id + + ", batchId=" + batchId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", isSend=" + isSend + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", installHeight=" + installHeight + + ", iccid=" + iccid + + ", imei=" + imei + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java new file mode 100644 index 0000000..870c36f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_payments") +public class Payments extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @TableField("paytime") + private Date paytime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getPaytime() { + return paytime; + } + + public void setPaytime(Date paytime) { + this.paytime = paytime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Payments{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", paytime=" + paytime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java new file mode 100644 index 0000000..ae6b585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -0,0 +1,285 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_device_type") +public class ProductDeviceType extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 产品名称 + */ + @TableField("product_name") + private String productName; + /** + * 产品型号 + */ + @TableField("product_model") + private String productModel; + + /** + * 通讯版本号 + */ + @TableField("communication_version") + private String communicationVersion; + + /** + * 产品类型 + */ + @TableField("product_type") + private String productType; + + /** + * 整机版本号 + */ + @TableField("machine_version") + private String machineVersion; + /** + * 硬件版本号 + */ + @TableField("hardware_version") + private String hardwareVersion; + /** + * 软件版本号 + */ + @TableField("software_version") + private String softwareVersion; + /** + * 设计归档 + */ + @TableField("design_archive") + private String designArchive; + /** + * 批产归档 + */ + @TableField("batch_filing") + private String batchFiling; + /** + * 状态 + */ + @TableField("status") + private Integer status; + /** + * 性能指标 + */ + @TableField("kpi") + private String kpi; + /** + * 批产负责人 + */ + @TableField("principal") + private String principal; + /** + * 定额汇总表 + */ + @TableField("quota_summary") + private String quotaSummary; + + /** + * 权属部门 + */ + @TableField("deptid") + private String deptid; + + /** + * 备注 + */ + @TableField("descn") + private String descn; + + @TableField("createtime") + private Date createtime; + + + @TableField(exist = false) + private String statusFmt; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } + + public String getMachineVersion() { + return machineVersion; + } + + public void setMachineVersion(String machineVersion) { + this.machineVersion = machineVersion; + } + + public String getHardwareVersion() { + return hardwareVersion; + } + + public void setHardwareVersion(String hardwareVersion) { + this.hardwareVersion = hardwareVersion; + } + + public String getSoftwareVersion() { + return softwareVersion; + } + + public void setSoftwareVersion(String softwareVersion) { + this.softwareVersion = softwareVersion; + } + + public String getDesignArchive() { + return designArchive; + } + + public void setDesignArchive(String designArchive) { + this.designArchive = designArchive; + } + + public String getBatchFiling() { + return batchFiling; + } + + public void setBatchFiling(String batchFiling) { + this.batchFiling = batchFiling; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getKpi() { + return kpi; + } + + public void setKpi(String kpi) { + this.kpi = kpi; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public String getQuotaSummary() { + return quotaSummary; + } + + public void setQuotaSummary(String quotaSummary) { + this.quotaSummary = quotaSummary; + } + + public String getStatusFmt() { + return statusFmt; + } + + public void setStatusFmt(String statusFmt) { + this.statusFmt = statusFmt; + } + + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getProductType() { + return productType; + } + + public void setProductType(String productType) { + this.productType = productType; + } + + public String getCommunicationVersion() { + return communicationVersion; + } + + public void setCommunicationVersion(String communicationVersion) { + this.communicationVersion = communicationVersion; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductDeviceType{" + + "id=" + id + + ", productName=" + productName + + ", productModel=" + productModel + + ", machineVersion=" + machineVersion + + ", hardwareVersion=" + hardwareVersion + + ", softwareVersion=" + softwareVersion + + ", designArchive=" + designArchive + + ", batchFiling=" + batchFiling + + ", status=" + status + + ", kpi=" + kpi + + ", principal=" + principal + + ", quotaSummary=" + quotaSummary + + "}"; + } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java new file mode 100644 index 0000000..4670df3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 集中器相关日志 + */ +public class ProjectDict extends AbstractDictMap { + public static final String PROJECT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + @Override + public void init() { + put("projectName","项目名称"); + put("projectSimpleName","项目简称"); + put("projectManager","项目经理"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java new file mode 100644 index 0000000..7981a17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dto; + +/** + * 用于设备类型展示 + * @author test203 + * @date 2020-04-03 + */ +public class DeviceTypeDto { + private Long id; + private String productName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java new file mode 100644 index 0000000..f254585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java @@ -0,0 +1,361 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.math.BigDecimal; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; + +/** + *

+ * 管理员表 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@TableName("sys_user") +public class Account extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + /** + * 头像 + */ + private String avatar; + /** + * 账号 + */ + private String account; + /** + * 密码 + */ + private String password; + /** + * md5密码盐 + */ + private String salt; + /** + * 名字 + */ + private String name; + /** + * 生日 + */ + private Date birthday; + /** + * 性别(1:男 2:女) + */ + private String sex; + /** + * 电子邮件 + */ + private String email; + /** + * 电话 + */ + private String phone; + /** + * 角色id + */ + private String roleid; + /** + * 部门id + */ + private Long deptid; + /** + * 状态(1:启用 2:冻结 3:删除) + */ + private String status; + /** + * 创建时间 + */ + private Date createtime; + /** + * 保留字段 + */ + private Integer version; + private String targetid; + private String targetname; + @TableField("password_sync") + private String passwordSync; + @TableField("IS_SYNC") + private Integer isSync; + private String simplename; + /** + * 同步组织ID + */ + @TableField("TARGET_DEPTID_SYNC") + private String targetDeptidSync; + @TableField("LOGIN_IP") + private String loginIp; + @TableField("LOGIN_MAC") + private String loginMac; + /** + * 最后在线时间 + */ + @TableField("LAST_TIME") + private Date lastTime; + /** + * 经度 + */ + @TableField("POSITION_LNG") + private BigDecimal positionLng; + /** + * 纬度 + */ + @TableField("POSITION_LAT") + private BigDecimal positionLat; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt() { + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getRoleid() { + return roleid; + } + + public void setRoleid(String roleid) { + this.roleid = roleid; + } + + public Long getDeptid() { + return deptid; + } + + public void setDeptid(Long deptid) { + this.deptid = deptid; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + public String getTargetid() { + return targetid; + } + + public void setTargetid(String targetid) { + this.targetid = targetid; + } + + public String getTargetname() { + return targetname; + } + + public void setTargetname(String targetname) { + this.targetname = targetname; + } + + public String getPasswordSync() { + return passwordSync; + } + + public void setPasswordSync(String passwordSync) { + this.passwordSync = passwordSync; + } + + public Integer getIsSync() { + return isSync; + } + + public void setIsSync(Integer isSync) { + this.isSync = isSync; + } + + public String getSimplename() { + return simplename; + } + + public void setSimplename(String simplename) { + this.simplename = simplename; + } + + public String getTargetDeptidSync() { + return targetDeptidSync; + } + + public void setTargetDeptidSync(String targetDeptidSync) { + this.targetDeptidSync = targetDeptidSync; + } + + public String getLoginIp() { + return loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getLoginMac() { + return loginMac; + } + + public void setLoginMac(String loginMac) { + this.loginMac = loginMac; + } + + public Date getLastTime() { + return lastTime; + } + + public void setLastTime(Date lastTime) { + this.lastTime = lastTime; + } + + public BigDecimal getPositionLng() { + return positionLng; + } + + public void setPositionLng(BigDecimal positionLng) { + this.positionLng = positionLng; + } + + public BigDecimal getPositionLat() { + return positionLat; + } + + public void setPositionLat(BigDecimal positionLat) { + this.positionLat = positionLat; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", avatar=" + avatar + + ", account=" + account + + ", password=" + password + + ", salt=" + salt + + ", name=" + name + + ", birthday=" + birthday + + ", sex=" + sex + + ", email=" + email + + ", phone=" + phone + + ", roleid=" + roleid + + ", deptid=" + deptid + + ", status=" + status + + ", createtime=" + createtime + + ", version=" + version + + ", targetid=" + targetid + + ", targetname=" + targetname + + ", passwordSync=" + passwordSync + + ", isSync=" + isSync + + ", simplename=" + simplename + + ", targetDeptidSync=" + targetDeptidSync + + ", loginIp=" + loginIp + + ", loginMac=" + loginMac + + ", lastTime=" + lastTime + + ", positionLng=" + positionLng + + ", positionLat=" + positionLat + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java new file mode 100644 index 0000000..81516b7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -0,0 +1,110 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_batch") +public class Batch extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_number") + private Long batchNumber; + @TableField("batch_count") + private Long batchCount; + @TableField("contract_id") + private Long contractId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("task_id") + private Long taskId; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(Long batchNumber) { + this.batchNumber = batchNumber; + } + + public Long getBatchCount() { + return batchCount; + } + + public void setBatchCount(Long batchCount) { + this.batchCount = batchCount; + } + + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Batch{" + + "id=" + id + + ", batchNumber=" + batchNumber + + ", batchCount=" + batchCount + + ", contractId=" + contractId + + ", taskId=" + taskId + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java new file mode 100644 index 0000000..893a1ed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -0,0 +1,186 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_contract") +public class Contract extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("contract_number") + private String contractNumber; + @TableField("contract_name") + private String contractName; + @TableField("contract_content") + private String contractContent; + @TableField("contract_amount") + private String contractAmount; + @TableField("external_project_apply") + private String externalProjectApply; + @TableField("external_contract_apply") + private String externalContractApply; + @TableField("principal") + private String principal; + @TableField("external_check_apply") + private String externalCheckApply; + @TableField("contract_factory") + private String contractFactory; + @TableField("createtime") + private Date createtime; + @TableField(exist = false) + private String paymentStatus; + @TableField(exist = false) + private String netFlow; + @TableField("deptid") + private String deptid; + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getContractName() { + return contractName; + } + + public void setContractName(String contractName) { + this.contractName = contractName; + } + + public String getContractContent() { + return contractContent; + } + + public void setContractContent(String contractContent) { + this.contractContent = contractContent; + } + + public String getContractAmount() { + return contractAmount; + } + + public void setContractAmount(String contractAmount) { + this.contractAmount = contractAmount; + } + + public String getExternalProjectApply() { + return externalProjectApply; + } + + public void setExternalProjectApply(String externalProjectApply) { + this.externalProjectApply = externalProjectApply; + } + + public String getExternalContractApply() { + return externalContractApply; + } + + public void setExternalContractApply(String externalContractApply) { + this.externalContractApply = externalContractApply; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalCheckApply() { + return externalCheckApply; + } + + public void setExternalCheckApply(String externalCheckApply) { + this.externalCheckApply = externalCheckApply; + } + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public String getContractFactory() { + return contractFactory; + } + + public void setContractFactory(String contractFactory) { + this.contractFactory = contractFactory; + } + + public String getNetFlow() { + return netFlow; + } + + public void setNetFlow(String netFlow) { + this.netFlow = netFlow; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Contract{" + + "contractNumber=" + contractNumber + + ", contractName=" + contractName + + ", contractContent=" + contractContent + + ", contractAmount=" + contractAmount + + ", externalProjectApply=" + externalProjectApply + + ", externalContractApply=" + externalContractApply + + ", principal=" + principal + + ", id=" + id + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java new file mode 100644 index 0000000..8718d91 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -0,0 +1,150 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_device") +public class Device extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_id") + private Long batchId; + private String devcode; + @TableField("devtype_id") + private Long devtypeId; + @TableField("is_send") + private String isSend; + private String longitude; + private String latitude; + @TableField("install_height") + private String installHeight; + private String iccid; + private Long imei; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public Long getImei() { + return imei; + } + + public void setImei(Long imei) { + this.imei = imei; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Device{" + + "id=" + id + + ", batchId=" + batchId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", isSend=" + isSend + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", installHeight=" + installHeight + + ", iccid=" + iccid + + ", imei=" + imei + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java new file mode 100644 index 0000000..870c36f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_payments") +public class Payments extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @TableField("paytime") + private Date paytime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getPaytime() { + return paytime; + } + + public void setPaytime(Date paytime) { + this.paytime = paytime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Payments{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", paytime=" + paytime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java new file mode 100644 index 0000000..ae6b585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -0,0 +1,285 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_device_type") +public class ProductDeviceType extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 产品名称 + */ + @TableField("product_name") + private String productName; + /** + * 产品型号 + */ + @TableField("product_model") + private String productModel; + + /** + * 通讯版本号 + */ + @TableField("communication_version") + private String communicationVersion; + + /** + * 产品类型 + */ + @TableField("product_type") + private String productType; + + /** + * 整机版本号 + */ + @TableField("machine_version") + private String machineVersion; + /** + * 硬件版本号 + */ + @TableField("hardware_version") + private String hardwareVersion; + /** + * 软件版本号 + */ + @TableField("software_version") + private String softwareVersion; + /** + * 设计归档 + */ + @TableField("design_archive") + private String designArchive; + /** + * 批产归档 + */ + @TableField("batch_filing") + private String batchFiling; + /** + * 状态 + */ + @TableField("status") + private Integer status; + /** + * 性能指标 + */ + @TableField("kpi") + private String kpi; + /** + * 批产负责人 + */ + @TableField("principal") + private String principal; + /** + * 定额汇总表 + */ + @TableField("quota_summary") + private String quotaSummary; + + /** + * 权属部门 + */ + @TableField("deptid") + private String deptid; + + /** + * 备注 + */ + @TableField("descn") + private String descn; + + @TableField("createtime") + private Date createtime; + + + @TableField(exist = false) + private String statusFmt; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } + + public String getMachineVersion() { + return machineVersion; + } + + public void setMachineVersion(String machineVersion) { + this.machineVersion = machineVersion; + } + + public String getHardwareVersion() { + return hardwareVersion; + } + + public void setHardwareVersion(String hardwareVersion) { + this.hardwareVersion = hardwareVersion; + } + + public String getSoftwareVersion() { + return softwareVersion; + } + + public void setSoftwareVersion(String softwareVersion) { + this.softwareVersion = softwareVersion; + } + + public String getDesignArchive() { + return designArchive; + } + + public void setDesignArchive(String designArchive) { + this.designArchive = designArchive; + } + + public String getBatchFiling() { + return batchFiling; + } + + public void setBatchFiling(String batchFiling) { + this.batchFiling = batchFiling; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getKpi() { + return kpi; + } + + public void setKpi(String kpi) { + this.kpi = kpi; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public String getQuotaSummary() { + return quotaSummary; + } + + public void setQuotaSummary(String quotaSummary) { + this.quotaSummary = quotaSummary; + } + + public String getStatusFmt() { + return statusFmt; + } + + public void setStatusFmt(String statusFmt) { + this.statusFmt = statusFmt; + } + + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getProductType() { + return productType; + } + + public void setProductType(String productType) { + this.productType = productType; + } + + public String getCommunicationVersion() { + return communicationVersion; + } + + public void setCommunicationVersion(String communicationVersion) { + this.communicationVersion = communicationVersion; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductDeviceType{" + + "id=" + id + + ", productName=" + productName + + ", productModel=" + productModel + + ", machineVersion=" + machineVersion + + ", hardwareVersion=" + hardwareVersion + + ", softwareVersion=" + softwareVersion + + ", designArchive=" + designArchive + + ", batchFiling=" + batchFiling + + ", status=" + status + + ", kpi=" + kpi + + ", principal=" + principal + + ", quotaSummary=" + quotaSummary + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java new file mode 100644 index 0000000..b0fd924 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java @@ -0,0 +1,187 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_factory_information") +public class ProductFactoryInformation extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 厂家名称 + */ + @TableField("name") + private String name; + /** + * 厂家联系人 + */ + @TableField("person_name") + private String personName; + /** + * 地址 + */ + @TableField("address") + private String address; + /** + * 电话 + */ + @TableField("phone") + private String phone; + /** + * 开户行 + */ + @TableField("bank") + private String bank; + /** + * 税号 + */ + @TableField("tax_number") + private String taxNumber; + /** + * 在产设备 + */ + @TableField("producting_device") + private String productingDevice; + /** + * 设备报价表 + */ + @TableField("equipment_quotation") + private String equipmentQuotation; + + @TableField("createtime") + private Date createtime =new Date(); + + @TableField("deptid") + private String deptid; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPersonName() { + return personName; + } + + public void setPersonName(String personName) { + this.personName = personName; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getBank() { + return bank; + } + + public void setBank(String bank) { + this.bank = bank; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getProductingDevice() { + return productingDevice; + } + + public void setProductingDevice(String productingDevice) { + this.productingDevice = productingDevice; + } + + public String getEquipmentQuotation() { + return equipmentQuotation; + } + + public void setEquipmentQuotation(String equipmentQuotation) { + this.equipmentQuotation = equipmentQuotation; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductFactoryInformation{" + + "id=" + id + + ", name=" + name + + ", personName=" + personName + + ", address=" + address + + ", phone=" + phone + + ", bank=" + bank + + ", taxNumber=" + taxNumber + + ", productingDevice=" + productingDevice + + ", equipmentQuotation=" + equipmentQuotation + + "}"; + } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java new file mode 100644 index 0000000..4670df3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 集中器相关日志 + */ +public class ProjectDict extends AbstractDictMap { + public static final String PROJECT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + @Override + public void init() { + put("projectName","项目名称"); + put("projectSimpleName","项目简称"); + put("projectManager","项目经理"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java new file mode 100644 index 0000000..7981a17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dto; + +/** + * 用于设备类型展示 + * @author test203 + * @date 2020-04-03 + */ +public class DeviceTypeDto { + private Long id; + private String productName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java new file mode 100644 index 0000000..f254585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java @@ -0,0 +1,361 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.math.BigDecimal; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; + +/** + *

+ * 管理员表 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@TableName("sys_user") +public class Account extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + /** + * 头像 + */ + private String avatar; + /** + * 账号 + */ + private String account; + /** + * 密码 + */ + private String password; + /** + * md5密码盐 + */ + private String salt; + /** + * 名字 + */ + private String name; + /** + * 生日 + */ + private Date birthday; + /** + * 性别(1:男 2:女) + */ + private String sex; + /** + * 电子邮件 + */ + private String email; + /** + * 电话 + */ + private String phone; + /** + * 角色id + */ + private String roleid; + /** + * 部门id + */ + private Long deptid; + /** + * 状态(1:启用 2:冻结 3:删除) + */ + private String status; + /** + * 创建时间 + */ + private Date createtime; + /** + * 保留字段 + */ + private Integer version; + private String targetid; + private String targetname; + @TableField("password_sync") + private String passwordSync; + @TableField("IS_SYNC") + private Integer isSync; + private String simplename; + /** + * 同步组织ID + */ + @TableField("TARGET_DEPTID_SYNC") + private String targetDeptidSync; + @TableField("LOGIN_IP") + private String loginIp; + @TableField("LOGIN_MAC") + private String loginMac; + /** + * 最后在线时间 + */ + @TableField("LAST_TIME") + private Date lastTime; + /** + * 经度 + */ + @TableField("POSITION_LNG") + private BigDecimal positionLng; + /** + * 纬度 + */ + @TableField("POSITION_LAT") + private BigDecimal positionLat; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt() { + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getRoleid() { + return roleid; + } + + public void setRoleid(String roleid) { + this.roleid = roleid; + } + + public Long getDeptid() { + return deptid; + } + + public void setDeptid(Long deptid) { + this.deptid = deptid; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + public String getTargetid() { + return targetid; + } + + public void setTargetid(String targetid) { + this.targetid = targetid; + } + + public String getTargetname() { + return targetname; + } + + public void setTargetname(String targetname) { + this.targetname = targetname; + } + + public String getPasswordSync() { + return passwordSync; + } + + public void setPasswordSync(String passwordSync) { + this.passwordSync = passwordSync; + } + + public Integer getIsSync() { + return isSync; + } + + public void setIsSync(Integer isSync) { + this.isSync = isSync; + } + + public String getSimplename() { + return simplename; + } + + public void setSimplename(String simplename) { + this.simplename = simplename; + } + + public String getTargetDeptidSync() { + return targetDeptidSync; + } + + public void setTargetDeptidSync(String targetDeptidSync) { + this.targetDeptidSync = targetDeptidSync; + } + + public String getLoginIp() { + return loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getLoginMac() { + return loginMac; + } + + public void setLoginMac(String loginMac) { + this.loginMac = loginMac; + } + + public Date getLastTime() { + return lastTime; + } + + public void setLastTime(Date lastTime) { + this.lastTime = lastTime; + } + + public BigDecimal getPositionLng() { + return positionLng; + } + + public void setPositionLng(BigDecimal positionLng) { + this.positionLng = positionLng; + } + + public BigDecimal getPositionLat() { + return positionLat; + } + + public void setPositionLat(BigDecimal positionLat) { + this.positionLat = positionLat; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", avatar=" + avatar + + ", account=" + account + + ", password=" + password + + ", salt=" + salt + + ", name=" + name + + ", birthday=" + birthday + + ", sex=" + sex + + ", email=" + email + + ", phone=" + phone + + ", roleid=" + roleid + + ", deptid=" + deptid + + ", status=" + status + + ", createtime=" + createtime + + ", version=" + version + + ", targetid=" + targetid + + ", targetname=" + targetname + + ", passwordSync=" + passwordSync + + ", isSync=" + isSync + + ", simplename=" + simplename + + ", targetDeptidSync=" + targetDeptidSync + + ", loginIp=" + loginIp + + ", loginMac=" + loginMac + + ", lastTime=" + lastTime + + ", positionLng=" + positionLng + + ", positionLat=" + positionLat + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java new file mode 100644 index 0000000..81516b7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -0,0 +1,110 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_batch") +public class Batch extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_number") + private Long batchNumber; + @TableField("batch_count") + private Long batchCount; + @TableField("contract_id") + private Long contractId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("task_id") + private Long taskId; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(Long batchNumber) { + this.batchNumber = batchNumber; + } + + public Long getBatchCount() { + return batchCount; + } + + public void setBatchCount(Long batchCount) { + this.batchCount = batchCount; + } + + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Batch{" + + "id=" + id + + ", batchNumber=" + batchNumber + + ", batchCount=" + batchCount + + ", contractId=" + contractId + + ", taskId=" + taskId + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java new file mode 100644 index 0000000..893a1ed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -0,0 +1,186 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_contract") +public class Contract extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("contract_number") + private String contractNumber; + @TableField("contract_name") + private String contractName; + @TableField("contract_content") + private String contractContent; + @TableField("contract_amount") + private String contractAmount; + @TableField("external_project_apply") + private String externalProjectApply; + @TableField("external_contract_apply") + private String externalContractApply; + @TableField("principal") + private String principal; + @TableField("external_check_apply") + private String externalCheckApply; + @TableField("contract_factory") + private String contractFactory; + @TableField("createtime") + private Date createtime; + @TableField(exist = false) + private String paymentStatus; + @TableField(exist = false) + private String netFlow; + @TableField("deptid") + private String deptid; + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getContractName() { + return contractName; + } + + public void setContractName(String contractName) { + this.contractName = contractName; + } + + public String getContractContent() { + return contractContent; + } + + public void setContractContent(String contractContent) { + this.contractContent = contractContent; + } + + public String getContractAmount() { + return contractAmount; + } + + public void setContractAmount(String contractAmount) { + this.contractAmount = contractAmount; + } + + public String getExternalProjectApply() { + return externalProjectApply; + } + + public void setExternalProjectApply(String externalProjectApply) { + this.externalProjectApply = externalProjectApply; + } + + public String getExternalContractApply() { + return externalContractApply; + } + + public void setExternalContractApply(String externalContractApply) { + this.externalContractApply = externalContractApply; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalCheckApply() { + return externalCheckApply; + } + + public void setExternalCheckApply(String externalCheckApply) { + this.externalCheckApply = externalCheckApply; + } + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public String getContractFactory() { + return contractFactory; + } + + public void setContractFactory(String contractFactory) { + this.contractFactory = contractFactory; + } + + public String getNetFlow() { + return netFlow; + } + + public void setNetFlow(String netFlow) { + this.netFlow = netFlow; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Contract{" + + "contractNumber=" + contractNumber + + ", contractName=" + contractName + + ", contractContent=" + contractContent + + ", contractAmount=" + contractAmount + + ", externalProjectApply=" + externalProjectApply + + ", externalContractApply=" + externalContractApply + + ", principal=" + principal + + ", id=" + id + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java new file mode 100644 index 0000000..8718d91 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -0,0 +1,150 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_device") +public class Device extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_id") + private Long batchId; + private String devcode; + @TableField("devtype_id") + private Long devtypeId; + @TableField("is_send") + private String isSend; + private String longitude; + private String latitude; + @TableField("install_height") + private String installHeight; + private String iccid; + private Long imei; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public Long getImei() { + return imei; + } + + public void setImei(Long imei) { + this.imei = imei; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Device{" + + "id=" + id + + ", batchId=" + batchId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", isSend=" + isSend + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", installHeight=" + installHeight + + ", iccid=" + iccid + + ", imei=" + imei + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java new file mode 100644 index 0000000..870c36f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_payments") +public class Payments extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @TableField("paytime") + private Date paytime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getPaytime() { + return paytime; + } + + public void setPaytime(Date paytime) { + this.paytime = paytime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Payments{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", paytime=" + paytime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java new file mode 100644 index 0000000..ae6b585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -0,0 +1,285 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_device_type") +public class ProductDeviceType extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 产品名称 + */ + @TableField("product_name") + private String productName; + /** + * 产品型号 + */ + @TableField("product_model") + private String productModel; + + /** + * 通讯版本号 + */ + @TableField("communication_version") + private String communicationVersion; + + /** + * 产品类型 + */ + @TableField("product_type") + private String productType; + + /** + * 整机版本号 + */ + @TableField("machine_version") + private String machineVersion; + /** + * 硬件版本号 + */ + @TableField("hardware_version") + private String hardwareVersion; + /** + * 软件版本号 + */ + @TableField("software_version") + private String softwareVersion; + /** + * 设计归档 + */ + @TableField("design_archive") + private String designArchive; + /** + * 批产归档 + */ + @TableField("batch_filing") + private String batchFiling; + /** + * 状态 + */ + @TableField("status") + private Integer status; + /** + * 性能指标 + */ + @TableField("kpi") + private String kpi; + /** + * 批产负责人 + */ + @TableField("principal") + private String principal; + /** + * 定额汇总表 + */ + @TableField("quota_summary") + private String quotaSummary; + + /** + * 权属部门 + */ + @TableField("deptid") + private String deptid; + + /** + * 备注 + */ + @TableField("descn") + private String descn; + + @TableField("createtime") + private Date createtime; + + + @TableField(exist = false) + private String statusFmt; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } + + public String getMachineVersion() { + return machineVersion; + } + + public void setMachineVersion(String machineVersion) { + this.machineVersion = machineVersion; + } + + public String getHardwareVersion() { + return hardwareVersion; + } + + public void setHardwareVersion(String hardwareVersion) { + this.hardwareVersion = hardwareVersion; + } + + public String getSoftwareVersion() { + return softwareVersion; + } + + public void setSoftwareVersion(String softwareVersion) { + this.softwareVersion = softwareVersion; + } + + public String getDesignArchive() { + return designArchive; + } + + public void setDesignArchive(String designArchive) { + this.designArchive = designArchive; + } + + public String getBatchFiling() { + return batchFiling; + } + + public void setBatchFiling(String batchFiling) { + this.batchFiling = batchFiling; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getKpi() { + return kpi; + } + + public void setKpi(String kpi) { + this.kpi = kpi; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public String getQuotaSummary() { + return quotaSummary; + } + + public void setQuotaSummary(String quotaSummary) { + this.quotaSummary = quotaSummary; + } + + public String getStatusFmt() { + return statusFmt; + } + + public void setStatusFmt(String statusFmt) { + this.statusFmt = statusFmt; + } + + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getProductType() { + return productType; + } + + public void setProductType(String productType) { + this.productType = productType; + } + + public String getCommunicationVersion() { + return communicationVersion; + } + + public void setCommunicationVersion(String communicationVersion) { + this.communicationVersion = communicationVersion; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductDeviceType{" + + "id=" + id + + ", productName=" + productName + + ", productModel=" + productModel + + ", machineVersion=" + machineVersion + + ", hardwareVersion=" + hardwareVersion + + ", softwareVersion=" + softwareVersion + + ", designArchive=" + designArchive + + ", batchFiling=" + batchFiling + + ", status=" + status + + ", kpi=" + kpi + + ", principal=" + principal + + ", quotaSummary=" + quotaSummary + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java new file mode 100644 index 0000000..b0fd924 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java @@ -0,0 +1,187 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_factory_information") +public class ProductFactoryInformation extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 厂家名称 + */ + @TableField("name") + private String name; + /** + * 厂家联系人 + */ + @TableField("person_name") + private String personName; + /** + * 地址 + */ + @TableField("address") + private String address; + /** + * 电话 + */ + @TableField("phone") + private String phone; + /** + * 开户行 + */ + @TableField("bank") + private String bank; + /** + * 税号 + */ + @TableField("tax_number") + private String taxNumber; + /** + * 在产设备 + */ + @TableField("producting_device") + private String productingDevice; + /** + * 设备报价表 + */ + @TableField("equipment_quotation") + private String equipmentQuotation; + + @TableField("createtime") + private Date createtime =new Date(); + + @TableField("deptid") + private String deptid; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPersonName() { + return personName; + } + + public void setPersonName(String personName) { + this.personName = personName; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getBank() { + return bank; + } + + public void setBank(String bank) { + this.bank = bank; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getProductingDevice() { + return productingDevice; + } + + public void setProductingDevice(String productingDevice) { + this.productingDevice = productingDevice; + } + + public String getEquipmentQuotation() { + return equipmentQuotation; + } + + public void setEquipmentQuotation(String equipmentQuotation) { + this.equipmentQuotation = equipmentQuotation; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductFactoryInformation{" + + "id=" + id + + ", name=" + name + + ", personName=" + personName + + ", address=" + address + + ", phone=" + phone + + ", bank=" + bank + + ", taxNumber=" + taxNumber + + ", productingDevice=" + productingDevice + + ", equipmentQuotation=" + equipmentQuotation + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java new file mode 100644 index 0000000..00cbc92 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -0,0 +1,99 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@TableName("product_project") +public class Project extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_name") + private String projectName; + @TableField("project_simple_name") + private String projectSimpleName; + @TableField("project_manager") + private String projectManager; + private String descn; + @TableField("createtime") + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getProjectManager() { + return projectManager; + } + + public void setProjectManager(String projectManager) { + this.projectManager = projectManager; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Project{" + + "id=" + id + + ", projectName=" + projectName + + ", projectSimpleName=" + projectSimpleName + + ", projectManager=" + projectManager + + ", descn=" + descn + + "}"; + } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java new file mode 100644 index 0000000..4670df3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 集中器相关日志 + */ +public class ProjectDict extends AbstractDictMap { + public static final String PROJECT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + @Override + public void init() { + put("projectName","项目名称"); + put("projectSimpleName","项目简称"); + put("projectManager","项目经理"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java new file mode 100644 index 0000000..7981a17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dto; + +/** + * 用于设备类型展示 + * @author test203 + * @date 2020-04-03 + */ +public class DeviceTypeDto { + private Long id; + private String productName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java new file mode 100644 index 0000000..f254585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java @@ -0,0 +1,361 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.math.BigDecimal; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; + +/** + *

+ * 管理员表 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@TableName("sys_user") +public class Account extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + /** + * 头像 + */ + private String avatar; + /** + * 账号 + */ + private String account; + /** + * 密码 + */ + private String password; + /** + * md5密码盐 + */ + private String salt; + /** + * 名字 + */ + private String name; + /** + * 生日 + */ + private Date birthday; + /** + * 性别(1:男 2:女) + */ + private String sex; + /** + * 电子邮件 + */ + private String email; + /** + * 电话 + */ + private String phone; + /** + * 角色id + */ + private String roleid; + /** + * 部门id + */ + private Long deptid; + /** + * 状态(1:启用 2:冻结 3:删除) + */ + private String status; + /** + * 创建时间 + */ + private Date createtime; + /** + * 保留字段 + */ + private Integer version; + private String targetid; + private String targetname; + @TableField("password_sync") + private String passwordSync; + @TableField("IS_SYNC") + private Integer isSync; + private String simplename; + /** + * 同步组织ID + */ + @TableField("TARGET_DEPTID_SYNC") + private String targetDeptidSync; + @TableField("LOGIN_IP") + private String loginIp; + @TableField("LOGIN_MAC") + private String loginMac; + /** + * 最后在线时间 + */ + @TableField("LAST_TIME") + private Date lastTime; + /** + * 经度 + */ + @TableField("POSITION_LNG") + private BigDecimal positionLng; + /** + * 纬度 + */ + @TableField("POSITION_LAT") + private BigDecimal positionLat; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt() { + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getRoleid() { + return roleid; + } + + public void setRoleid(String roleid) { + this.roleid = roleid; + } + + public Long getDeptid() { + return deptid; + } + + public void setDeptid(Long deptid) { + this.deptid = deptid; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + public String getTargetid() { + return targetid; + } + + public void setTargetid(String targetid) { + this.targetid = targetid; + } + + public String getTargetname() { + return targetname; + } + + public void setTargetname(String targetname) { + this.targetname = targetname; + } + + public String getPasswordSync() { + return passwordSync; + } + + public void setPasswordSync(String passwordSync) { + this.passwordSync = passwordSync; + } + + public Integer getIsSync() { + return isSync; + } + + public void setIsSync(Integer isSync) { + this.isSync = isSync; + } + + public String getSimplename() { + return simplename; + } + + public void setSimplename(String simplename) { + this.simplename = simplename; + } + + public String getTargetDeptidSync() { + return targetDeptidSync; + } + + public void setTargetDeptidSync(String targetDeptidSync) { + this.targetDeptidSync = targetDeptidSync; + } + + public String getLoginIp() { + return loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getLoginMac() { + return loginMac; + } + + public void setLoginMac(String loginMac) { + this.loginMac = loginMac; + } + + public Date getLastTime() { + return lastTime; + } + + public void setLastTime(Date lastTime) { + this.lastTime = lastTime; + } + + public BigDecimal getPositionLng() { + return positionLng; + } + + public void setPositionLng(BigDecimal positionLng) { + this.positionLng = positionLng; + } + + public BigDecimal getPositionLat() { + return positionLat; + } + + public void setPositionLat(BigDecimal positionLat) { + this.positionLat = positionLat; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", avatar=" + avatar + + ", account=" + account + + ", password=" + password + + ", salt=" + salt + + ", name=" + name + + ", birthday=" + birthday + + ", sex=" + sex + + ", email=" + email + + ", phone=" + phone + + ", roleid=" + roleid + + ", deptid=" + deptid + + ", status=" + status + + ", createtime=" + createtime + + ", version=" + version + + ", targetid=" + targetid + + ", targetname=" + targetname + + ", passwordSync=" + passwordSync + + ", isSync=" + isSync + + ", simplename=" + simplename + + ", targetDeptidSync=" + targetDeptidSync + + ", loginIp=" + loginIp + + ", loginMac=" + loginMac + + ", lastTime=" + lastTime + + ", positionLng=" + positionLng + + ", positionLat=" + positionLat + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java new file mode 100644 index 0000000..81516b7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -0,0 +1,110 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_batch") +public class Batch extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_number") + private Long batchNumber; + @TableField("batch_count") + private Long batchCount; + @TableField("contract_id") + private Long contractId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("task_id") + private Long taskId; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(Long batchNumber) { + this.batchNumber = batchNumber; + } + + public Long getBatchCount() { + return batchCount; + } + + public void setBatchCount(Long batchCount) { + this.batchCount = batchCount; + } + + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Batch{" + + "id=" + id + + ", batchNumber=" + batchNumber + + ", batchCount=" + batchCount + + ", contractId=" + contractId + + ", taskId=" + taskId + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java new file mode 100644 index 0000000..893a1ed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -0,0 +1,186 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_contract") +public class Contract extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("contract_number") + private String contractNumber; + @TableField("contract_name") + private String contractName; + @TableField("contract_content") + private String contractContent; + @TableField("contract_amount") + private String contractAmount; + @TableField("external_project_apply") + private String externalProjectApply; + @TableField("external_contract_apply") + private String externalContractApply; + @TableField("principal") + private String principal; + @TableField("external_check_apply") + private String externalCheckApply; + @TableField("contract_factory") + private String contractFactory; + @TableField("createtime") + private Date createtime; + @TableField(exist = false) + private String paymentStatus; + @TableField(exist = false) + private String netFlow; + @TableField("deptid") + private String deptid; + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getContractName() { + return contractName; + } + + public void setContractName(String contractName) { + this.contractName = contractName; + } + + public String getContractContent() { + return contractContent; + } + + public void setContractContent(String contractContent) { + this.contractContent = contractContent; + } + + public String getContractAmount() { + return contractAmount; + } + + public void setContractAmount(String contractAmount) { + this.contractAmount = contractAmount; + } + + public String getExternalProjectApply() { + return externalProjectApply; + } + + public void setExternalProjectApply(String externalProjectApply) { + this.externalProjectApply = externalProjectApply; + } + + public String getExternalContractApply() { + return externalContractApply; + } + + public void setExternalContractApply(String externalContractApply) { + this.externalContractApply = externalContractApply; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalCheckApply() { + return externalCheckApply; + } + + public void setExternalCheckApply(String externalCheckApply) { + this.externalCheckApply = externalCheckApply; + } + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public String getContractFactory() { + return contractFactory; + } + + public void setContractFactory(String contractFactory) { + this.contractFactory = contractFactory; + } + + public String getNetFlow() { + return netFlow; + } + + public void setNetFlow(String netFlow) { + this.netFlow = netFlow; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Contract{" + + "contractNumber=" + contractNumber + + ", contractName=" + contractName + + ", contractContent=" + contractContent + + ", contractAmount=" + contractAmount + + ", externalProjectApply=" + externalProjectApply + + ", externalContractApply=" + externalContractApply + + ", principal=" + principal + + ", id=" + id + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java new file mode 100644 index 0000000..8718d91 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -0,0 +1,150 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_device") +public class Device extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_id") + private Long batchId; + private String devcode; + @TableField("devtype_id") + private Long devtypeId; + @TableField("is_send") + private String isSend; + private String longitude; + private String latitude; + @TableField("install_height") + private String installHeight; + private String iccid; + private Long imei; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public Long getImei() { + return imei; + } + + public void setImei(Long imei) { + this.imei = imei; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Device{" + + "id=" + id + + ", batchId=" + batchId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", isSend=" + isSend + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", installHeight=" + installHeight + + ", iccid=" + iccid + + ", imei=" + imei + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java new file mode 100644 index 0000000..870c36f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_payments") +public class Payments extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @TableField("paytime") + private Date paytime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getPaytime() { + return paytime; + } + + public void setPaytime(Date paytime) { + this.paytime = paytime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Payments{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", paytime=" + paytime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java new file mode 100644 index 0000000..ae6b585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -0,0 +1,285 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_device_type") +public class ProductDeviceType extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 产品名称 + */ + @TableField("product_name") + private String productName; + /** + * 产品型号 + */ + @TableField("product_model") + private String productModel; + + /** + * 通讯版本号 + */ + @TableField("communication_version") + private String communicationVersion; + + /** + * 产品类型 + */ + @TableField("product_type") + private String productType; + + /** + * 整机版本号 + */ + @TableField("machine_version") + private String machineVersion; + /** + * 硬件版本号 + */ + @TableField("hardware_version") + private String hardwareVersion; + /** + * 软件版本号 + */ + @TableField("software_version") + private String softwareVersion; + /** + * 设计归档 + */ + @TableField("design_archive") + private String designArchive; + /** + * 批产归档 + */ + @TableField("batch_filing") + private String batchFiling; + /** + * 状态 + */ + @TableField("status") + private Integer status; + /** + * 性能指标 + */ + @TableField("kpi") + private String kpi; + /** + * 批产负责人 + */ + @TableField("principal") + private String principal; + /** + * 定额汇总表 + */ + @TableField("quota_summary") + private String quotaSummary; + + /** + * 权属部门 + */ + @TableField("deptid") + private String deptid; + + /** + * 备注 + */ + @TableField("descn") + private String descn; + + @TableField("createtime") + private Date createtime; + + + @TableField(exist = false) + private String statusFmt; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } + + public String getMachineVersion() { + return machineVersion; + } + + public void setMachineVersion(String machineVersion) { + this.machineVersion = machineVersion; + } + + public String getHardwareVersion() { + return hardwareVersion; + } + + public void setHardwareVersion(String hardwareVersion) { + this.hardwareVersion = hardwareVersion; + } + + public String getSoftwareVersion() { + return softwareVersion; + } + + public void setSoftwareVersion(String softwareVersion) { + this.softwareVersion = softwareVersion; + } + + public String getDesignArchive() { + return designArchive; + } + + public void setDesignArchive(String designArchive) { + this.designArchive = designArchive; + } + + public String getBatchFiling() { + return batchFiling; + } + + public void setBatchFiling(String batchFiling) { + this.batchFiling = batchFiling; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getKpi() { + return kpi; + } + + public void setKpi(String kpi) { + this.kpi = kpi; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public String getQuotaSummary() { + return quotaSummary; + } + + public void setQuotaSummary(String quotaSummary) { + this.quotaSummary = quotaSummary; + } + + public String getStatusFmt() { + return statusFmt; + } + + public void setStatusFmt(String statusFmt) { + this.statusFmt = statusFmt; + } + + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getProductType() { + return productType; + } + + public void setProductType(String productType) { + this.productType = productType; + } + + public String getCommunicationVersion() { + return communicationVersion; + } + + public void setCommunicationVersion(String communicationVersion) { + this.communicationVersion = communicationVersion; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductDeviceType{" + + "id=" + id + + ", productName=" + productName + + ", productModel=" + productModel + + ", machineVersion=" + machineVersion + + ", hardwareVersion=" + hardwareVersion + + ", softwareVersion=" + softwareVersion + + ", designArchive=" + designArchive + + ", batchFiling=" + batchFiling + + ", status=" + status + + ", kpi=" + kpi + + ", principal=" + principal + + ", quotaSummary=" + quotaSummary + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java new file mode 100644 index 0000000..b0fd924 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java @@ -0,0 +1,187 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_factory_information") +public class ProductFactoryInformation extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 厂家名称 + */ + @TableField("name") + private String name; + /** + * 厂家联系人 + */ + @TableField("person_name") + private String personName; + /** + * 地址 + */ + @TableField("address") + private String address; + /** + * 电话 + */ + @TableField("phone") + private String phone; + /** + * 开户行 + */ + @TableField("bank") + private String bank; + /** + * 税号 + */ + @TableField("tax_number") + private String taxNumber; + /** + * 在产设备 + */ + @TableField("producting_device") + private String productingDevice; + /** + * 设备报价表 + */ + @TableField("equipment_quotation") + private String equipmentQuotation; + + @TableField("createtime") + private Date createtime =new Date(); + + @TableField("deptid") + private String deptid; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPersonName() { + return personName; + } + + public void setPersonName(String personName) { + this.personName = personName; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getBank() { + return bank; + } + + public void setBank(String bank) { + this.bank = bank; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getProductingDevice() { + return productingDevice; + } + + public void setProductingDevice(String productingDevice) { + this.productingDevice = productingDevice; + } + + public String getEquipmentQuotation() { + return equipmentQuotation; + } + + public void setEquipmentQuotation(String equipmentQuotation) { + this.equipmentQuotation = equipmentQuotation; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductFactoryInformation{" + + "id=" + id + + ", name=" + name + + ", personName=" + personName + + ", address=" + address + + ", phone=" + phone + + ", bank=" + bank + + ", taxNumber=" + taxNumber + + ", productingDevice=" + productingDevice + + ", equipmentQuotation=" + equipmentQuotation + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java new file mode 100644 index 0000000..00cbc92 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -0,0 +1,99 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@TableName("product_project") +public class Project extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_name") + private String projectName; + @TableField("project_simple_name") + private String projectSimpleName; + @TableField("project_manager") + private String projectManager; + private String descn; + @TableField("createtime") + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getProjectManager() { + return projectManager; + } + + public void setProjectManager(String projectManager) { + this.projectManager = projectManager; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Project{" + + "id=" + id + + ", projectName=" + projectName + + ", projectSimpleName=" + projectSimpleName + + ", projectManager=" + projectManager + + ", descn=" + descn + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java new file mode 100644 index 0000000..658c2e1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java @@ -0,0 +1,126 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_reimburse") +public class Reimburse extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mi:ss") + @TableField("reimburse_time") + private Date reimburseTime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getReimburseTime() { + return reimburseTime; + } + + public void setReimburseTime(Date reimburseTime) { + this.reimburseTime = reimburseTime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Reimburse{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", reimburseTime=" + reimburseTime + + "}"; + } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java new file mode 100644 index 0000000..4670df3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 集中器相关日志 + */ +public class ProjectDict extends AbstractDictMap { + public static final String PROJECT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + @Override + public void init() { + put("projectName","项目名称"); + put("projectSimpleName","项目简称"); + put("projectManager","项目经理"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java new file mode 100644 index 0000000..7981a17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dto; + +/** + * 用于设备类型展示 + * @author test203 + * @date 2020-04-03 + */ +public class DeviceTypeDto { + private Long id; + private String productName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java new file mode 100644 index 0000000..f254585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java @@ -0,0 +1,361 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.math.BigDecimal; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; + +/** + *

+ * 管理员表 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@TableName("sys_user") +public class Account extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + /** + * 头像 + */ + private String avatar; + /** + * 账号 + */ + private String account; + /** + * 密码 + */ + private String password; + /** + * md5密码盐 + */ + private String salt; + /** + * 名字 + */ + private String name; + /** + * 生日 + */ + private Date birthday; + /** + * 性别(1:男 2:女) + */ + private String sex; + /** + * 电子邮件 + */ + private String email; + /** + * 电话 + */ + private String phone; + /** + * 角色id + */ + private String roleid; + /** + * 部门id + */ + private Long deptid; + /** + * 状态(1:启用 2:冻结 3:删除) + */ + private String status; + /** + * 创建时间 + */ + private Date createtime; + /** + * 保留字段 + */ + private Integer version; + private String targetid; + private String targetname; + @TableField("password_sync") + private String passwordSync; + @TableField("IS_SYNC") + private Integer isSync; + private String simplename; + /** + * 同步组织ID + */ + @TableField("TARGET_DEPTID_SYNC") + private String targetDeptidSync; + @TableField("LOGIN_IP") + private String loginIp; + @TableField("LOGIN_MAC") + private String loginMac; + /** + * 最后在线时间 + */ + @TableField("LAST_TIME") + private Date lastTime; + /** + * 经度 + */ + @TableField("POSITION_LNG") + private BigDecimal positionLng; + /** + * 纬度 + */ + @TableField("POSITION_LAT") + private BigDecimal positionLat; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt() { + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getRoleid() { + return roleid; + } + + public void setRoleid(String roleid) { + this.roleid = roleid; + } + + public Long getDeptid() { + return deptid; + } + + public void setDeptid(Long deptid) { + this.deptid = deptid; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + public String getTargetid() { + return targetid; + } + + public void setTargetid(String targetid) { + this.targetid = targetid; + } + + public String getTargetname() { + return targetname; + } + + public void setTargetname(String targetname) { + this.targetname = targetname; + } + + public String getPasswordSync() { + return passwordSync; + } + + public void setPasswordSync(String passwordSync) { + this.passwordSync = passwordSync; + } + + public Integer getIsSync() { + return isSync; + } + + public void setIsSync(Integer isSync) { + this.isSync = isSync; + } + + public String getSimplename() { + return simplename; + } + + public void setSimplename(String simplename) { + this.simplename = simplename; + } + + public String getTargetDeptidSync() { + return targetDeptidSync; + } + + public void setTargetDeptidSync(String targetDeptidSync) { + this.targetDeptidSync = targetDeptidSync; + } + + public String getLoginIp() { + return loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getLoginMac() { + return loginMac; + } + + public void setLoginMac(String loginMac) { + this.loginMac = loginMac; + } + + public Date getLastTime() { + return lastTime; + } + + public void setLastTime(Date lastTime) { + this.lastTime = lastTime; + } + + public BigDecimal getPositionLng() { + return positionLng; + } + + public void setPositionLng(BigDecimal positionLng) { + this.positionLng = positionLng; + } + + public BigDecimal getPositionLat() { + return positionLat; + } + + public void setPositionLat(BigDecimal positionLat) { + this.positionLat = positionLat; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", avatar=" + avatar + + ", account=" + account + + ", password=" + password + + ", salt=" + salt + + ", name=" + name + + ", birthday=" + birthday + + ", sex=" + sex + + ", email=" + email + + ", phone=" + phone + + ", roleid=" + roleid + + ", deptid=" + deptid + + ", status=" + status + + ", createtime=" + createtime + + ", version=" + version + + ", targetid=" + targetid + + ", targetname=" + targetname + + ", passwordSync=" + passwordSync + + ", isSync=" + isSync + + ", simplename=" + simplename + + ", targetDeptidSync=" + targetDeptidSync + + ", loginIp=" + loginIp + + ", loginMac=" + loginMac + + ", lastTime=" + lastTime + + ", positionLng=" + positionLng + + ", positionLat=" + positionLat + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java new file mode 100644 index 0000000..81516b7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -0,0 +1,110 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_batch") +public class Batch extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_number") + private Long batchNumber; + @TableField("batch_count") + private Long batchCount; + @TableField("contract_id") + private Long contractId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("task_id") + private Long taskId; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(Long batchNumber) { + this.batchNumber = batchNumber; + } + + public Long getBatchCount() { + return batchCount; + } + + public void setBatchCount(Long batchCount) { + this.batchCount = batchCount; + } + + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Batch{" + + "id=" + id + + ", batchNumber=" + batchNumber + + ", batchCount=" + batchCount + + ", contractId=" + contractId + + ", taskId=" + taskId + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java new file mode 100644 index 0000000..893a1ed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -0,0 +1,186 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_contract") +public class Contract extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("contract_number") + private String contractNumber; + @TableField("contract_name") + private String contractName; + @TableField("contract_content") + private String contractContent; + @TableField("contract_amount") + private String contractAmount; + @TableField("external_project_apply") + private String externalProjectApply; + @TableField("external_contract_apply") + private String externalContractApply; + @TableField("principal") + private String principal; + @TableField("external_check_apply") + private String externalCheckApply; + @TableField("contract_factory") + private String contractFactory; + @TableField("createtime") + private Date createtime; + @TableField(exist = false) + private String paymentStatus; + @TableField(exist = false) + private String netFlow; + @TableField("deptid") + private String deptid; + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getContractName() { + return contractName; + } + + public void setContractName(String contractName) { + this.contractName = contractName; + } + + public String getContractContent() { + return contractContent; + } + + public void setContractContent(String contractContent) { + this.contractContent = contractContent; + } + + public String getContractAmount() { + return contractAmount; + } + + public void setContractAmount(String contractAmount) { + this.contractAmount = contractAmount; + } + + public String getExternalProjectApply() { + return externalProjectApply; + } + + public void setExternalProjectApply(String externalProjectApply) { + this.externalProjectApply = externalProjectApply; + } + + public String getExternalContractApply() { + return externalContractApply; + } + + public void setExternalContractApply(String externalContractApply) { + this.externalContractApply = externalContractApply; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalCheckApply() { + return externalCheckApply; + } + + public void setExternalCheckApply(String externalCheckApply) { + this.externalCheckApply = externalCheckApply; + } + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public String getContractFactory() { + return contractFactory; + } + + public void setContractFactory(String contractFactory) { + this.contractFactory = contractFactory; + } + + public String getNetFlow() { + return netFlow; + } + + public void setNetFlow(String netFlow) { + this.netFlow = netFlow; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Contract{" + + "contractNumber=" + contractNumber + + ", contractName=" + contractName + + ", contractContent=" + contractContent + + ", contractAmount=" + contractAmount + + ", externalProjectApply=" + externalProjectApply + + ", externalContractApply=" + externalContractApply + + ", principal=" + principal + + ", id=" + id + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java new file mode 100644 index 0000000..8718d91 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -0,0 +1,150 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_device") +public class Device extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_id") + private Long batchId; + private String devcode; + @TableField("devtype_id") + private Long devtypeId; + @TableField("is_send") + private String isSend; + private String longitude; + private String latitude; + @TableField("install_height") + private String installHeight; + private String iccid; + private Long imei; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public Long getImei() { + return imei; + } + + public void setImei(Long imei) { + this.imei = imei; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Device{" + + "id=" + id + + ", batchId=" + batchId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", isSend=" + isSend + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", installHeight=" + installHeight + + ", iccid=" + iccid + + ", imei=" + imei + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java new file mode 100644 index 0000000..870c36f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_payments") +public class Payments extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @TableField("paytime") + private Date paytime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getPaytime() { + return paytime; + } + + public void setPaytime(Date paytime) { + this.paytime = paytime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Payments{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", paytime=" + paytime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java new file mode 100644 index 0000000..ae6b585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -0,0 +1,285 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_device_type") +public class ProductDeviceType extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 产品名称 + */ + @TableField("product_name") + private String productName; + /** + * 产品型号 + */ + @TableField("product_model") + private String productModel; + + /** + * 通讯版本号 + */ + @TableField("communication_version") + private String communicationVersion; + + /** + * 产品类型 + */ + @TableField("product_type") + private String productType; + + /** + * 整机版本号 + */ + @TableField("machine_version") + private String machineVersion; + /** + * 硬件版本号 + */ + @TableField("hardware_version") + private String hardwareVersion; + /** + * 软件版本号 + */ + @TableField("software_version") + private String softwareVersion; + /** + * 设计归档 + */ + @TableField("design_archive") + private String designArchive; + /** + * 批产归档 + */ + @TableField("batch_filing") + private String batchFiling; + /** + * 状态 + */ + @TableField("status") + private Integer status; + /** + * 性能指标 + */ + @TableField("kpi") + private String kpi; + /** + * 批产负责人 + */ + @TableField("principal") + private String principal; + /** + * 定额汇总表 + */ + @TableField("quota_summary") + private String quotaSummary; + + /** + * 权属部门 + */ + @TableField("deptid") + private String deptid; + + /** + * 备注 + */ + @TableField("descn") + private String descn; + + @TableField("createtime") + private Date createtime; + + + @TableField(exist = false) + private String statusFmt; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } + + public String getMachineVersion() { + return machineVersion; + } + + public void setMachineVersion(String machineVersion) { + this.machineVersion = machineVersion; + } + + public String getHardwareVersion() { + return hardwareVersion; + } + + public void setHardwareVersion(String hardwareVersion) { + this.hardwareVersion = hardwareVersion; + } + + public String getSoftwareVersion() { + return softwareVersion; + } + + public void setSoftwareVersion(String softwareVersion) { + this.softwareVersion = softwareVersion; + } + + public String getDesignArchive() { + return designArchive; + } + + public void setDesignArchive(String designArchive) { + this.designArchive = designArchive; + } + + public String getBatchFiling() { + return batchFiling; + } + + public void setBatchFiling(String batchFiling) { + this.batchFiling = batchFiling; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getKpi() { + return kpi; + } + + public void setKpi(String kpi) { + this.kpi = kpi; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public String getQuotaSummary() { + return quotaSummary; + } + + public void setQuotaSummary(String quotaSummary) { + this.quotaSummary = quotaSummary; + } + + public String getStatusFmt() { + return statusFmt; + } + + public void setStatusFmt(String statusFmt) { + this.statusFmt = statusFmt; + } + + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getProductType() { + return productType; + } + + public void setProductType(String productType) { + this.productType = productType; + } + + public String getCommunicationVersion() { + return communicationVersion; + } + + public void setCommunicationVersion(String communicationVersion) { + this.communicationVersion = communicationVersion; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductDeviceType{" + + "id=" + id + + ", productName=" + productName + + ", productModel=" + productModel + + ", machineVersion=" + machineVersion + + ", hardwareVersion=" + hardwareVersion + + ", softwareVersion=" + softwareVersion + + ", designArchive=" + designArchive + + ", batchFiling=" + batchFiling + + ", status=" + status + + ", kpi=" + kpi + + ", principal=" + principal + + ", quotaSummary=" + quotaSummary + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java new file mode 100644 index 0000000..b0fd924 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java @@ -0,0 +1,187 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_factory_information") +public class ProductFactoryInformation extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 厂家名称 + */ + @TableField("name") + private String name; + /** + * 厂家联系人 + */ + @TableField("person_name") + private String personName; + /** + * 地址 + */ + @TableField("address") + private String address; + /** + * 电话 + */ + @TableField("phone") + private String phone; + /** + * 开户行 + */ + @TableField("bank") + private String bank; + /** + * 税号 + */ + @TableField("tax_number") + private String taxNumber; + /** + * 在产设备 + */ + @TableField("producting_device") + private String productingDevice; + /** + * 设备报价表 + */ + @TableField("equipment_quotation") + private String equipmentQuotation; + + @TableField("createtime") + private Date createtime =new Date(); + + @TableField("deptid") + private String deptid; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPersonName() { + return personName; + } + + public void setPersonName(String personName) { + this.personName = personName; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getBank() { + return bank; + } + + public void setBank(String bank) { + this.bank = bank; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getProductingDevice() { + return productingDevice; + } + + public void setProductingDevice(String productingDevice) { + this.productingDevice = productingDevice; + } + + public String getEquipmentQuotation() { + return equipmentQuotation; + } + + public void setEquipmentQuotation(String equipmentQuotation) { + this.equipmentQuotation = equipmentQuotation; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductFactoryInformation{" + + "id=" + id + + ", name=" + name + + ", personName=" + personName + + ", address=" + address + + ", phone=" + phone + + ", bank=" + bank + + ", taxNumber=" + taxNumber + + ", productingDevice=" + productingDevice + + ", equipmentQuotation=" + equipmentQuotation + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java new file mode 100644 index 0000000..00cbc92 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -0,0 +1,99 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@TableName("product_project") +public class Project extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_name") + private String projectName; + @TableField("project_simple_name") + private String projectSimpleName; + @TableField("project_manager") + private String projectManager; + private String descn; + @TableField("createtime") + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getProjectManager() { + return projectManager; + } + + public void setProjectManager(String projectManager) { + this.projectManager = projectManager; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Project{" + + "id=" + id + + ", projectName=" + projectName + + ", projectSimpleName=" + projectSimpleName + + ", projectManager=" + projectManager + + ", descn=" + descn + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java new file mode 100644 index 0000000..658c2e1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java @@ -0,0 +1,126 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_reimburse") +public class Reimburse extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mi:ss") + @TableField("reimburse_time") + private Date reimburseTime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getReimburseTime() { + return reimburseTime; + } + + public void setReimburseTime(Date reimburseTime) { + this.reimburseTime = reimburseTime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Reimburse{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", reimburseTime=" + reimburseTime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java new file mode 100644 index 0000000..987efa7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java @@ -0,0 +1,141 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_task") +public class Task extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_id") + private Long projectId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("devmode_id") + private String devmodeId; + private Long devcount; + @TableField("delivery_time") + private Date deliveryTime; + private String demand; + private Date createtime; + @TableField(exist = false) + private String deliveryTimeFmt; + + @TableField(exist = false) + private Long taskId; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getProjectId() { + return projectId; + } + + public void setProjectId(Long projectId) { + this.projectId = projectId; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDevmodeId() { + return devmodeId; + } + + public void setDevmodeId(String devmodeId) { + this.devmodeId = devmodeId; + } + + public Long getDevcount() { + return devcount; + } + + public void setDevcount(Long devcount) { + this.devcount = devcount; + } + + public Date getDeliveryTime() { + return deliveryTime; + } + + public void setDeliveryTime(Date deliveryTime) { + this.deliveryTime = deliveryTime; + } + + public String getDemand() { + return demand; + } + + public void setDemand(String demand) { + this.demand = demand; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeliveryTimeFmt() { + return deliveryTimeFmt; + } + + public void setDeliveryTimeFmt(String deliveryTimeFmt) { + this.deliveryTimeFmt = deliveryTimeFmt; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Task{" + + "id=" + id + + ", projectId=" + projectId + + ", devtypeId=" + devtypeId + + ", devmodeId=" + devmodeId + + ", devcount=" + devcount + + ", deliveryTime=" + deliveryTime + + ", demand=" + demand + + ", createtime=" + createtime + + "}"; + } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java new file mode 100644 index 0000000..4670df3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 集中器相关日志 + */ +public class ProjectDict extends AbstractDictMap { + public static final String PROJECT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + @Override + public void init() { + put("projectName","项目名称"); + put("projectSimpleName","项目简称"); + put("projectManager","项目经理"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java new file mode 100644 index 0000000..7981a17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dto; + +/** + * 用于设备类型展示 + * @author test203 + * @date 2020-04-03 + */ +public class DeviceTypeDto { + private Long id; + private String productName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java new file mode 100644 index 0000000..f254585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java @@ -0,0 +1,361 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.math.BigDecimal; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; + +/** + *

+ * 管理员表 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@TableName("sys_user") +public class Account extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + /** + * 头像 + */ + private String avatar; + /** + * 账号 + */ + private String account; + /** + * 密码 + */ + private String password; + /** + * md5密码盐 + */ + private String salt; + /** + * 名字 + */ + private String name; + /** + * 生日 + */ + private Date birthday; + /** + * 性别(1:男 2:女) + */ + private String sex; + /** + * 电子邮件 + */ + private String email; + /** + * 电话 + */ + private String phone; + /** + * 角色id + */ + private String roleid; + /** + * 部门id + */ + private Long deptid; + /** + * 状态(1:启用 2:冻结 3:删除) + */ + private String status; + /** + * 创建时间 + */ + private Date createtime; + /** + * 保留字段 + */ + private Integer version; + private String targetid; + private String targetname; + @TableField("password_sync") + private String passwordSync; + @TableField("IS_SYNC") + private Integer isSync; + private String simplename; + /** + * 同步组织ID + */ + @TableField("TARGET_DEPTID_SYNC") + private String targetDeptidSync; + @TableField("LOGIN_IP") + private String loginIp; + @TableField("LOGIN_MAC") + private String loginMac; + /** + * 最后在线时间 + */ + @TableField("LAST_TIME") + private Date lastTime; + /** + * 经度 + */ + @TableField("POSITION_LNG") + private BigDecimal positionLng; + /** + * 纬度 + */ + @TableField("POSITION_LAT") + private BigDecimal positionLat; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt() { + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getRoleid() { + return roleid; + } + + public void setRoleid(String roleid) { + this.roleid = roleid; + } + + public Long getDeptid() { + return deptid; + } + + public void setDeptid(Long deptid) { + this.deptid = deptid; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + public String getTargetid() { + return targetid; + } + + public void setTargetid(String targetid) { + this.targetid = targetid; + } + + public String getTargetname() { + return targetname; + } + + public void setTargetname(String targetname) { + this.targetname = targetname; + } + + public String getPasswordSync() { + return passwordSync; + } + + public void setPasswordSync(String passwordSync) { + this.passwordSync = passwordSync; + } + + public Integer getIsSync() { + return isSync; + } + + public void setIsSync(Integer isSync) { + this.isSync = isSync; + } + + public String getSimplename() { + return simplename; + } + + public void setSimplename(String simplename) { + this.simplename = simplename; + } + + public String getTargetDeptidSync() { + return targetDeptidSync; + } + + public void setTargetDeptidSync(String targetDeptidSync) { + this.targetDeptidSync = targetDeptidSync; + } + + public String getLoginIp() { + return loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getLoginMac() { + return loginMac; + } + + public void setLoginMac(String loginMac) { + this.loginMac = loginMac; + } + + public Date getLastTime() { + return lastTime; + } + + public void setLastTime(Date lastTime) { + this.lastTime = lastTime; + } + + public BigDecimal getPositionLng() { + return positionLng; + } + + public void setPositionLng(BigDecimal positionLng) { + this.positionLng = positionLng; + } + + public BigDecimal getPositionLat() { + return positionLat; + } + + public void setPositionLat(BigDecimal positionLat) { + this.positionLat = positionLat; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", avatar=" + avatar + + ", account=" + account + + ", password=" + password + + ", salt=" + salt + + ", name=" + name + + ", birthday=" + birthday + + ", sex=" + sex + + ", email=" + email + + ", phone=" + phone + + ", roleid=" + roleid + + ", deptid=" + deptid + + ", status=" + status + + ", createtime=" + createtime + + ", version=" + version + + ", targetid=" + targetid + + ", targetname=" + targetname + + ", passwordSync=" + passwordSync + + ", isSync=" + isSync + + ", simplename=" + simplename + + ", targetDeptidSync=" + targetDeptidSync + + ", loginIp=" + loginIp + + ", loginMac=" + loginMac + + ", lastTime=" + lastTime + + ", positionLng=" + positionLng + + ", positionLat=" + positionLat + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java new file mode 100644 index 0000000..81516b7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -0,0 +1,110 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_batch") +public class Batch extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_number") + private Long batchNumber; + @TableField("batch_count") + private Long batchCount; + @TableField("contract_id") + private Long contractId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("task_id") + private Long taskId; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(Long batchNumber) { + this.batchNumber = batchNumber; + } + + public Long getBatchCount() { + return batchCount; + } + + public void setBatchCount(Long batchCount) { + this.batchCount = batchCount; + } + + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Batch{" + + "id=" + id + + ", batchNumber=" + batchNumber + + ", batchCount=" + batchCount + + ", contractId=" + contractId + + ", taskId=" + taskId + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java new file mode 100644 index 0000000..893a1ed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -0,0 +1,186 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_contract") +public class Contract extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("contract_number") + private String contractNumber; + @TableField("contract_name") + private String contractName; + @TableField("contract_content") + private String contractContent; + @TableField("contract_amount") + private String contractAmount; + @TableField("external_project_apply") + private String externalProjectApply; + @TableField("external_contract_apply") + private String externalContractApply; + @TableField("principal") + private String principal; + @TableField("external_check_apply") + private String externalCheckApply; + @TableField("contract_factory") + private String contractFactory; + @TableField("createtime") + private Date createtime; + @TableField(exist = false) + private String paymentStatus; + @TableField(exist = false) + private String netFlow; + @TableField("deptid") + private String deptid; + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getContractName() { + return contractName; + } + + public void setContractName(String contractName) { + this.contractName = contractName; + } + + public String getContractContent() { + return contractContent; + } + + public void setContractContent(String contractContent) { + this.contractContent = contractContent; + } + + public String getContractAmount() { + return contractAmount; + } + + public void setContractAmount(String contractAmount) { + this.contractAmount = contractAmount; + } + + public String getExternalProjectApply() { + return externalProjectApply; + } + + public void setExternalProjectApply(String externalProjectApply) { + this.externalProjectApply = externalProjectApply; + } + + public String getExternalContractApply() { + return externalContractApply; + } + + public void setExternalContractApply(String externalContractApply) { + this.externalContractApply = externalContractApply; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalCheckApply() { + return externalCheckApply; + } + + public void setExternalCheckApply(String externalCheckApply) { + this.externalCheckApply = externalCheckApply; + } + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public String getContractFactory() { + return contractFactory; + } + + public void setContractFactory(String contractFactory) { + this.contractFactory = contractFactory; + } + + public String getNetFlow() { + return netFlow; + } + + public void setNetFlow(String netFlow) { + this.netFlow = netFlow; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Contract{" + + "contractNumber=" + contractNumber + + ", contractName=" + contractName + + ", contractContent=" + contractContent + + ", contractAmount=" + contractAmount + + ", externalProjectApply=" + externalProjectApply + + ", externalContractApply=" + externalContractApply + + ", principal=" + principal + + ", id=" + id + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java new file mode 100644 index 0000000..8718d91 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -0,0 +1,150 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_device") +public class Device extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_id") + private Long batchId; + private String devcode; + @TableField("devtype_id") + private Long devtypeId; + @TableField("is_send") + private String isSend; + private String longitude; + private String latitude; + @TableField("install_height") + private String installHeight; + private String iccid; + private Long imei; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public Long getImei() { + return imei; + } + + public void setImei(Long imei) { + this.imei = imei; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Device{" + + "id=" + id + + ", batchId=" + batchId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", isSend=" + isSend + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", installHeight=" + installHeight + + ", iccid=" + iccid + + ", imei=" + imei + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java new file mode 100644 index 0000000..870c36f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_payments") +public class Payments extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @TableField("paytime") + private Date paytime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getPaytime() { + return paytime; + } + + public void setPaytime(Date paytime) { + this.paytime = paytime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Payments{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", paytime=" + paytime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java new file mode 100644 index 0000000..ae6b585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -0,0 +1,285 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_device_type") +public class ProductDeviceType extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 产品名称 + */ + @TableField("product_name") + private String productName; + /** + * 产品型号 + */ + @TableField("product_model") + private String productModel; + + /** + * 通讯版本号 + */ + @TableField("communication_version") + private String communicationVersion; + + /** + * 产品类型 + */ + @TableField("product_type") + private String productType; + + /** + * 整机版本号 + */ + @TableField("machine_version") + private String machineVersion; + /** + * 硬件版本号 + */ + @TableField("hardware_version") + private String hardwareVersion; + /** + * 软件版本号 + */ + @TableField("software_version") + private String softwareVersion; + /** + * 设计归档 + */ + @TableField("design_archive") + private String designArchive; + /** + * 批产归档 + */ + @TableField("batch_filing") + private String batchFiling; + /** + * 状态 + */ + @TableField("status") + private Integer status; + /** + * 性能指标 + */ + @TableField("kpi") + private String kpi; + /** + * 批产负责人 + */ + @TableField("principal") + private String principal; + /** + * 定额汇总表 + */ + @TableField("quota_summary") + private String quotaSummary; + + /** + * 权属部门 + */ + @TableField("deptid") + private String deptid; + + /** + * 备注 + */ + @TableField("descn") + private String descn; + + @TableField("createtime") + private Date createtime; + + + @TableField(exist = false) + private String statusFmt; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } + + public String getMachineVersion() { + return machineVersion; + } + + public void setMachineVersion(String machineVersion) { + this.machineVersion = machineVersion; + } + + public String getHardwareVersion() { + return hardwareVersion; + } + + public void setHardwareVersion(String hardwareVersion) { + this.hardwareVersion = hardwareVersion; + } + + public String getSoftwareVersion() { + return softwareVersion; + } + + public void setSoftwareVersion(String softwareVersion) { + this.softwareVersion = softwareVersion; + } + + public String getDesignArchive() { + return designArchive; + } + + public void setDesignArchive(String designArchive) { + this.designArchive = designArchive; + } + + public String getBatchFiling() { + return batchFiling; + } + + public void setBatchFiling(String batchFiling) { + this.batchFiling = batchFiling; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getKpi() { + return kpi; + } + + public void setKpi(String kpi) { + this.kpi = kpi; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public String getQuotaSummary() { + return quotaSummary; + } + + public void setQuotaSummary(String quotaSummary) { + this.quotaSummary = quotaSummary; + } + + public String getStatusFmt() { + return statusFmt; + } + + public void setStatusFmt(String statusFmt) { + this.statusFmt = statusFmt; + } + + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getProductType() { + return productType; + } + + public void setProductType(String productType) { + this.productType = productType; + } + + public String getCommunicationVersion() { + return communicationVersion; + } + + public void setCommunicationVersion(String communicationVersion) { + this.communicationVersion = communicationVersion; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductDeviceType{" + + "id=" + id + + ", productName=" + productName + + ", productModel=" + productModel + + ", machineVersion=" + machineVersion + + ", hardwareVersion=" + hardwareVersion + + ", softwareVersion=" + softwareVersion + + ", designArchive=" + designArchive + + ", batchFiling=" + batchFiling + + ", status=" + status + + ", kpi=" + kpi + + ", principal=" + principal + + ", quotaSummary=" + quotaSummary + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java new file mode 100644 index 0000000..b0fd924 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java @@ -0,0 +1,187 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_factory_information") +public class ProductFactoryInformation extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 厂家名称 + */ + @TableField("name") + private String name; + /** + * 厂家联系人 + */ + @TableField("person_name") + private String personName; + /** + * 地址 + */ + @TableField("address") + private String address; + /** + * 电话 + */ + @TableField("phone") + private String phone; + /** + * 开户行 + */ + @TableField("bank") + private String bank; + /** + * 税号 + */ + @TableField("tax_number") + private String taxNumber; + /** + * 在产设备 + */ + @TableField("producting_device") + private String productingDevice; + /** + * 设备报价表 + */ + @TableField("equipment_quotation") + private String equipmentQuotation; + + @TableField("createtime") + private Date createtime =new Date(); + + @TableField("deptid") + private String deptid; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPersonName() { + return personName; + } + + public void setPersonName(String personName) { + this.personName = personName; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getBank() { + return bank; + } + + public void setBank(String bank) { + this.bank = bank; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getProductingDevice() { + return productingDevice; + } + + public void setProductingDevice(String productingDevice) { + this.productingDevice = productingDevice; + } + + public String getEquipmentQuotation() { + return equipmentQuotation; + } + + public void setEquipmentQuotation(String equipmentQuotation) { + this.equipmentQuotation = equipmentQuotation; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductFactoryInformation{" + + "id=" + id + + ", name=" + name + + ", personName=" + personName + + ", address=" + address + + ", phone=" + phone + + ", bank=" + bank + + ", taxNumber=" + taxNumber + + ", productingDevice=" + productingDevice + + ", equipmentQuotation=" + equipmentQuotation + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java new file mode 100644 index 0000000..00cbc92 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -0,0 +1,99 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@TableName("product_project") +public class Project extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_name") + private String projectName; + @TableField("project_simple_name") + private String projectSimpleName; + @TableField("project_manager") + private String projectManager; + private String descn; + @TableField("createtime") + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getProjectManager() { + return projectManager; + } + + public void setProjectManager(String projectManager) { + this.projectManager = projectManager; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Project{" + + "id=" + id + + ", projectName=" + projectName + + ", projectSimpleName=" + projectSimpleName + + ", projectManager=" + projectManager + + ", descn=" + descn + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java new file mode 100644 index 0000000..658c2e1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java @@ -0,0 +1,126 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_reimburse") +public class Reimburse extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mi:ss") + @TableField("reimburse_time") + private Date reimburseTime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getReimburseTime() { + return reimburseTime; + } + + public void setReimburseTime(Date reimburseTime) { + this.reimburseTime = reimburseTime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Reimburse{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", reimburseTime=" + reimburseTime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java new file mode 100644 index 0000000..987efa7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java @@ -0,0 +1,141 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_task") +public class Task extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_id") + private Long projectId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("devmode_id") + private String devmodeId; + private Long devcount; + @TableField("delivery_time") + private Date deliveryTime; + private String demand; + private Date createtime; + @TableField(exist = false) + private String deliveryTimeFmt; + + @TableField(exist = false) + private Long taskId; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getProjectId() { + return projectId; + } + + public void setProjectId(Long projectId) { + this.projectId = projectId; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDevmodeId() { + return devmodeId; + } + + public void setDevmodeId(String devmodeId) { + this.devmodeId = devmodeId; + } + + public Long getDevcount() { + return devcount; + } + + public void setDevcount(Long devcount) { + this.devcount = devcount; + } + + public Date getDeliveryTime() { + return deliveryTime; + } + + public void setDeliveryTime(Date deliveryTime) { + this.deliveryTime = deliveryTime; + } + + public String getDemand() { + return demand; + } + + public void setDemand(String demand) { + this.demand = demand; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeliveryTimeFmt() { + return deliveryTimeFmt; + } + + public void setDeliveryTimeFmt(String deliveryTimeFmt) { + this.deliveryTimeFmt = deliveryTimeFmt; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Task{" + + "id=" + id + + ", projectId=" + projectId + + ", devtypeId=" + devtypeId + + ", devmodeId=" + devmodeId + + ", devcount=" + devcount + + ", deliveryTime=" + deliveryTime + + ", demand=" + demand + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java new file mode 100644 index 0000000..7785de5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface IAccountService extends IService { + + /** + * 根据用户名查用户 + * @param userName + * @return + */ + Account findUserByName(String userName); + +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java new file mode 100644 index 0000000..4670df3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 集中器相关日志 + */ +public class ProjectDict extends AbstractDictMap { + public static final String PROJECT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + @Override + public void init() { + put("projectName","项目名称"); + put("projectSimpleName","项目简称"); + put("projectManager","项目经理"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java new file mode 100644 index 0000000..7981a17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dto; + +/** + * 用于设备类型展示 + * @author test203 + * @date 2020-04-03 + */ +public class DeviceTypeDto { + private Long id; + private String productName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java new file mode 100644 index 0000000..f254585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java @@ -0,0 +1,361 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.math.BigDecimal; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; + +/** + *

+ * 管理员表 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@TableName("sys_user") +public class Account extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + /** + * 头像 + */ + private String avatar; + /** + * 账号 + */ + private String account; + /** + * 密码 + */ + private String password; + /** + * md5密码盐 + */ + private String salt; + /** + * 名字 + */ + private String name; + /** + * 生日 + */ + private Date birthday; + /** + * 性别(1:男 2:女) + */ + private String sex; + /** + * 电子邮件 + */ + private String email; + /** + * 电话 + */ + private String phone; + /** + * 角色id + */ + private String roleid; + /** + * 部门id + */ + private Long deptid; + /** + * 状态(1:启用 2:冻结 3:删除) + */ + private String status; + /** + * 创建时间 + */ + private Date createtime; + /** + * 保留字段 + */ + private Integer version; + private String targetid; + private String targetname; + @TableField("password_sync") + private String passwordSync; + @TableField("IS_SYNC") + private Integer isSync; + private String simplename; + /** + * 同步组织ID + */ + @TableField("TARGET_DEPTID_SYNC") + private String targetDeptidSync; + @TableField("LOGIN_IP") + private String loginIp; + @TableField("LOGIN_MAC") + private String loginMac; + /** + * 最后在线时间 + */ + @TableField("LAST_TIME") + private Date lastTime; + /** + * 经度 + */ + @TableField("POSITION_LNG") + private BigDecimal positionLng; + /** + * 纬度 + */ + @TableField("POSITION_LAT") + private BigDecimal positionLat; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt() { + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getRoleid() { + return roleid; + } + + public void setRoleid(String roleid) { + this.roleid = roleid; + } + + public Long getDeptid() { + return deptid; + } + + public void setDeptid(Long deptid) { + this.deptid = deptid; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + public String getTargetid() { + return targetid; + } + + public void setTargetid(String targetid) { + this.targetid = targetid; + } + + public String getTargetname() { + return targetname; + } + + public void setTargetname(String targetname) { + this.targetname = targetname; + } + + public String getPasswordSync() { + return passwordSync; + } + + public void setPasswordSync(String passwordSync) { + this.passwordSync = passwordSync; + } + + public Integer getIsSync() { + return isSync; + } + + public void setIsSync(Integer isSync) { + this.isSync = isSync; + } + + public String getSimplename() { + return simplename; + } + + public void setSimplename(String simplename) { + this.simplename = simplename; + } + + public String getTargetDeptidSync() { + return targetDeptidSync; + } + + public void setTargetDeptidSync(String targetDeptidSync) { + this.targetDeptidSync = targetDeptidSync; + } + + public String getLoginIp() { + return loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getLoginMac() { + return loginMac; + } + + public void setLoginMac(String loginMac) { + this.loginMac = loginMac; + } + + public Date getLastTime() { + return lastTime; + } + + public void setLastTime(Date lastTime) { + this.lastTime = lastTime; + } + + public BigDecimal getPositionLng() { + return positionLng; + } + + public void setPositionLng(BigDecimal positionLng) { + this.positionLng = positionLng; + } + + public BigDecimal getPositionLat() { + return positionLat; + } + + public void setPositionLat(BigDecimal positionLat) { + this.positionLat = positionLat; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", avatar=" + avatar + + ", account=" + account + + ", password=" + password + + ", salt=" + salt + + ", name=" + name + + ", birthday=" + birthday + + ", sex=" + sex + + ", email=" + email + + ", phone=" + phone + + ", roleid=" + roleid + + ", deptid=" + deptid + + ", status=" + status + + ", createtime=" + createtime + + ", version=" + version + + ", targetid=" + targetid + + ", targetname=" + targetname + + ", passwordSync=" + passwordSync + + ", isSync=" + isSync + + ", simplename=" + simplename + + ", targetDeptidSync=" + targetDeptidSync + + ", loginIp=" + loginIp + + ", loginMac=" + loginMac + + ", lastTime=" + lastTime + + ", positionLng=" + positionLng + + ", positionLat=" + positionLat + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java new file mode 100644 index 0000000..81516b7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -0,0 +1,110 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_batch") +public class Batch extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_number") + private Long batchNumber; + @TableField("batch_count") + private Long batchCount; + @TableField("contract_id") + private Long contractId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("task_id") + private Long taskId; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(Long batchNumber) { + this.batchNumber = batchNumber; + } + + public Long getBatchCount() { + return batchCount; + } + + public void setBatchCount(Long batchCount) { + this.batchCount = batchCount; + } + + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Batch{" + + "id=" + id + + ", batchNumber=" + batchNumber + + ", batchCount=" + batchCount + + ", contractId=" + contractId + + ", taskId=" + taskId + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java new file mode 100644 index 0000000..893a1ed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -0,0 +1,186 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_contract") +public class Contract extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("contract_number") + private String contractNumber; + @TableField("contract_name") + private String contractName; + @TableField("contract_content") + private String contractContent; + @TableField("contract_amount") + private String contractAmount; + @TableField("external_project_apply") + private String externalProjectApply; + @TableField("external_contract_apply") + private String externalContractApply; + @TableField("principal") + private String principal; + @TableField("external_check_apply") + private String externalCheckApply; + @TableField("contract_factory") + private String contractFactory; + @TableField("createtime") + private Date createtime; + @TableField(exist = false) + private String paymentStatus; + @TableField(exist = false) + private String netFlow; + @TableField("deptid") + private String deptid; + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getContractName() { + return contractName; + } + + public void setContractName(String contractName) { + this.contractName = contractName; + } + + public String getContractContent() { + return contractContent; + } + + public void setContractContent(String contractContent) { + this.contractContent = contractContent; + } + + public String getContractAmount() { + return contractAmount; + } + + public void setContractAmount(String contractAmount) { + this.contractAmount = contractAmount; + } + + public String getExternalProjectApply() { + return externalProjectApply; + } + + public void setExternalProjectApply(String externalProjectApply) { + this.externalProjectApply = externalProjectApply; + } + + public String getExternalContractApply() { + return externalContractApply; + } + + public void setExternalContractApply(String externalContractApply) { + this.externalContractApply = externalContractApply; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalCheckApply() { + return externalCheckApply; + } + + public void setExternalCheckApply(String externalCheckApply) { + this.externalCheckApply = externalCheckApply; + } + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public String getContractFactory() { + return contractFactory; + } + + public void setContractFactory(String contractFactory) { + this.contractFactory = contractFactory; + } + + public String getNetFlow() { + return netFlow; + } + + public void setNetFlow(String netFlow) { + this.netFlow = netFlow; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Contract{" + + "contractNumber=" + contractNumber + + ", contractName=" + contractName + + ", contractContent=" + contractContent + + ", contractAmount=" + contractAmount + + ", externalProjectApply=" + externalProjectApply + + ", externalContractApply=" + externalContractApply + + ", principal=" + principal + + ", id=" + id + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java new file mode 100644 index 0000000..8718d91 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -0,0 +1,150 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_device") +public class Device extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_id") + private Long batchId; + private String devcode; + @TableField("devtype_id") + private Long devtypeId; + @TableField("is_send") + private String isSend; + private String longitude; + private String latitude; + @TableField("install_height") + private String installHeight; + private String iccid; + private Long imei; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public Long getImei() { + return imei; + } + + public void setImei(Long imei) { + this.imei = imei; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Device{" + + "id=" + id + + ", batchId=" + batchId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", isSend=" + isSend + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", installHeight=" + installHeight + + ", iccid=" + iccid + + ", imei=" + imei + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java new file mode 100644 index 0000000..870c36f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_payments") +public class Payments extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @TableField("paytime") + private Date paytime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getPaytime() { + return paytime; + } + + public void setPaytime(Date paytime) { + this.paytime = paytime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Payments{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", paytime=" + paytime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java new file mode 100644 index 0000000..ae6b585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -0,0 +1,285 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_device_type") +public class ProductDeviceType extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 产品名称 + */ + @TableField("product_name") + private String productName; + /** + * 产品型号 + */ + @TableField("product_model") + private String productModel; + + /** + * 通讯版本号 + */ + @TableField("communication_version") + private String communicationVersion; + + /** + * 产品类型 + */ + @TableField("product_type") + private String productType; + + /** + * 整机版本号 + */ + @TableField("machine_version") + private String machineVersion; + /** + * 硬件版本号 + */ + @TableField("hardware_version") + private String hardwareVersion; + /** + * 软件版本号 + */ + @TableField("software_version") + private String softwareVersion; + /** + * 设计归档 + */ + @TableField("design_archive") + private String designArchive; + /** + * 批产归档 + */ + @TableField("batch_filing") + private String batchFiling; + /** + * 状态 + */ + @TableField("status") + private Integer status; + /** + * 性能指标 + */ + @TableField("kpi") + private String kpi; + /** + * 批产负责人 + */ + @TableField("principal") + private String principal; + /** + * 定额汇总表 + */ + @TableField("quota_summary") + private String quotaSummary; + + /** + * 权属部门 + */ + @TableField("deptid") + private String deptid; + + /** + * 备注 + */ + @TableField("descn") + private String descn; + + @TableField("createtime") + private Date createtime; + + + @TableField(exist = false) + private String statusFmt; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } + + public String getMachineVersion() { + return machineVersion; + } + + public void setMachineVersion(String machineVersion) { + this.machineVersion = machineVersion; + } + + public String getHardwareVersion() { + return hardwareVersion; + } + + public void setHardwareVersion(String hardwareVersion) { + this.hardwareVersion = hardwareVersion; + } + + public String getSoftwareVersion() { + return softwareVersion; + } + + public void setSoftwareVersion(String softwareVersion) { + this.softwareVersion = softwareVersion; + } + + public String getDesignArchive() { + return designArchive; + } + + public void setDesignArchive(String designArchive) { + this.designArchive = designArchive; + } + + public String getBatchFiling() { + return batchFiling; + } + + public void setBatchFiling(String batchFiling) { + this.batchFiling = batchFiling; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getKpi() { + return kpi; + } + + public void setKpi(String kpi) { + this.kpi = kpi; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public String getQuotaSummary() { + return quotaSummary; + } + + public void setQuotaSummary(String quotaSummary) { + this.quotaSummary = quotaSummary; + } + + public String getStatusFmt() { + return statusFmt; + } + + public void setStatusFmt(String statusFmt) { + this.statusFmt = statusFmt; + } + + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getProductType() { + return productType; + } + + public void setProductType(String productType) { + this.productType = productType; + } + + public String getCommunicationVersion() { + return communicationVersion; + } + + public void setCommunicationVersion(String communicationVersion) { + this.communicationVersion = communicationVersion; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductDeviceType{" + + "id=" + id + + ", productName=" + productName + + ", productModel=" + productModel + + ", machineVersion=" + machineVersion + + ", hardwareVersion=" + hardwareVersion + + ", softwareVersion=" + softwareVersion + + ", designArchive=" + designArchive + + ", batchFiling=" + batchFiling + + ", status=" + status + + ", kpi=" + kpi + + ", principal=" + principal + + ", quotaSummary=" + quotaSummary + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java new file mode 100644 index 0000000..b0fd924 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java @@ -0,0 +1,187 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_factory_information") +public class ProductFactoryInformation extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 厂家名称 + */ + @TableField("name") + private String name; + /** + * 厂家联系人 + */ + @TableField("person_name") + private String personName; + /** + * 地址 + */ + @TableField("address") + private String address; + /** + * 电话 + */ + @TableField("phone") + private String phone; + /** + * 开户行 + */ + @TableField("bank") + private String bank; + /** + * 税号 + */ + @TableField("tax_number") + private String taxNumber; + /** + * 在产设备 + */ + @TableField("producting_device") + private String productingDevice; + /** + * 设备报价表 + */ + @TableField("equipment_quotation") + private String equipmentQuotation; + + @TableField("createtime") + private Date createtime =new Date(); + + @TableField("deptid") + private String deptid; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPersonName() { + return personName; + } + + public void setPersonName(String personName) { + this.personName = personName; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getBank() { + return bank; + } + + public void setBank(String bank) { + this.bank = bank; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getProductingDevice() { + return productingDevice; + } + + public void setProductingDevice(String productingDevice) { + this.productingDevice = productingDevice; + } + + public String getEquipmentQuotation() { + return equipmentQuotation; + } + + public void setEquipmentQuotation(String equipmentQuotation) { + this.equipmentQuotation = equipmentQuotation; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductFactoryInformation{" + + "id=" + id + + ", name=" + name + + ", personName=" + personName + + ", address=" + address + + ", phone=" + phone + + ", bank=" + bank + + ", taxNumber=" + taxNumber + + ", productingDevice=" + productingDevice + + ", equipmentQuotation=" + equipmentQuotation + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java new file mode 100644 index 0000000..00cbc92 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -0,0 +1,99 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@TableName("product_project") +public class Project extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_name") + private String projectName; + @TableField("project_simple_name") + private String projectSimpleName; + @TableField("project_manager") + private String projectManager; + private String descn; + @TableField("createtime") + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getProjectManager() { + return projectManager; + } + + public void setProjectManager(String projectManager) { + this.projectManager = projectManager; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Project{" + + "id=" + id + + ", projectName=" + projectName + + ", projectSimpleName=" + projectSimpleName + + ", projectManager=" + projectManager + + ", descn=" + descn + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java new file mode 100644 index 0000000..658c2e1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java @@ -0,0 +1,126 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_reimburse") +public class Reimburse extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mi:ss") + @TableField("reimburse_time") + private Date reimburseTime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getReimburseTime() { + return reimburseTime; + } + + public void setReimburseTime(Date reimburseTime) { + this.reimburseTime = reimburseTime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Reimburse{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", reimburseTime=" + reimburseTime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java new file mode 100644 index 0000000..987efa7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java @@ -0,0 +1,141 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_task") +public class Task extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_id") + private Long projectId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("devmode_id") + private String devmodeId; + private Long devcount; + @TableField("delivery_time") + private Date deliveryTime; + private String demand; + private Date createtime; + @TableField(exist = false) + private String deliveryTimeFmt; + + @TableField(exist = false) + private Long taskId; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getProjectId() { + return projectId; + } + + public void setProjectId(Long projectId) { + this.projectId = projectId; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDevmodeId() { + return devmodeId; + } + + public void setDevmodeId(String devmodeId) { + this.devmodeId = devmodeId; + } + + public Long getDevcount() { + return devcount; + } + + public void setDevcount(Long devcount) { + this.devcount = devcount; + } + + public Date getDeliveryTime() { + return deliveryTime; + } + + public void setDeliveryTime(Date deliveryTime) { + this.deliveryTime = deliveryTime; + } + + public String getDemand() { + return demand; + } + + public void setDemand(String demand) { + this.demand = demand; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeliveryTimeFmt() { + return deliveryTimeFmt; + } + + public void setDeliveryTimeFmt(String deliveryTimeFmt) { + this.deliveryTimeFmt = deliveryTimeFmt; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Task{" + + "id=" + id + + ", projectId=" + projectId + + ", devtypeId=" + devtypeId + + ", devmodeId=" + devmodeId + + ", devcount=" + devcount + + ", deliveryTime=" + deliveryTime + + ", demand=" + demand + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java new file mode 100644 index 0000000..7785de5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface IAccountService extends IService { + + /** + * 根据用户名查用户 + * @param userName + * @return + */ + Account findUserByName(String userName); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java new file mode 100644 index 0000000..d8b5e87 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IContractService extends IService { + List selectPageList(Page page, String keyword1, String keyword2, String keyword3); + List reportExport(String keyword1, String keyword2, String keyword3); + void importContract( List contracts); +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java new file mode 100644 index 0000000..4670df3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 集中器相关日志 + */ +public class ProjectDict extends AbstractDictMap { + public static final String PROJECT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + @Override + public void init() { + put("projectName","项目名称"); + put("projectSimpleName","项目简称"); + put("projectManager","项目经理"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java new file mode 100644 index 0000000..7981a17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dto; + +/** + * 用于设备类型展示 + * @author test203 + * @date 2020-04-03 + */ +public class DeviceTypeDto { + private Long id; + private String productName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java new file mode 100644 index 0000000..f254585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java @@ -0,0 +1,361 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.math.BigDecimal; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; + +/** + *

+ * 管理员表 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@TableName("sys_user") +public class Account extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + /** + * 头像 + */ + private String avatar; + /** + * 账号 + */ + private String account; + /** + * 密码 + */ + private String password; + /** + * md5密码盐 + */ + private String salt; + /** + * 名字 + */ + private String name; + /** + * 生日 + */ + private Date birthday; + /** + * 性别(1:男 2:女) + */ + private String sex; + /** + * 电子邮件 + */ + private String email; + /** + * 电话 + */ + private String phone; + /** + * 角色id + */ + private String roleid; + /** + * 部门id + */ + private Long deptid; + /** + * 状态(1:启用 2:冻结 3:删除) + */ + private String status; + /** + * 创建时间 + */ + private Date createtime; + /** + * 保留字段 + */ + private Integer version; + private String targetid; + private String targetname; + @TableField("password_sync") + private String passwordSync; + @TableField("IS_SYNC") + private Integer isSync; + private String simplename; + /** + * 同步组织ID + */ + @TableField("TARGET_DEPTID_SYNC") + private String targetDeptidSync; + @TableField("LOGIN_IP") + private String loginIp; + @TableField("LOGIN_MAC") + private String loginMac; + /** + * 最后在线时间 + */ + @TableField("LAST_TIME") + private Date lastTime; + /** + * 经度 + */ + @TableField("POSITION_LNG") + private BigDecimal positionLng; + /** + * 纬度 + */ + @TableField("POSITION_LAT") + private BigDecimal positionLat; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt() { + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getRoleid() { + return roleid; + } + + public void setRoleid(String roleid) { + this.roleid = roleid; + } + + public Long getDeptid() { + return deptid; + } + + public void setDeptid(Long deptid) { + this.deptid = deptid; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + public String getTargetid() { + return targetid; + } + + public void setTargetid(String targetid) { + this.targetid = targetid; + } + + public String getTargetname() { + return targetname; + } + + public void setTargetname(String targetname) { + this.targetname = targetname; + } + + public String getPasswordSync() { + return passwordSync; + } + + public void setPasswordSync(String passwordSync) { + this.passwordSync = passwordSync; + } + + public Integer getIsSync() { + return isSync; + } + + public void setIsSync(Integer isSync) { + this.isSync = isSync; + } + + public String getSimplename() { + return simplename; + } + + public void setSimplename(String simplename) { + this.simplename = simplename; + } + + public String getTargetDeptidSync() { + return targetDeptidSync; + } + + public void setTargetDeptidSync(String targetDeptidSync) { + this.targetDeptidSync = targetDeptidSync; + } + + public String getLoginIp() { + return loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getLoginMac() { + return loginMac; + } + + public void setLoginMac(String loginMac) { + this.loginMac = loginMac; + } + + public Date getLastTime() { + return lastTime; + } + + public void setLastTime(Date lastTime) { + this.lastTime = lastTime; + } + + public BigDecimal getPositionLng() { + return positionLng; + } + + public void setPositionLng(BigDecimal positionLng) { + this.positionLng = positionLng; + } + + public BigDecimal getPositionLat() { + return positionLat; + } + + public void setPositionLat(BigDecimal positionLat) { + this.positionLat = positionLat; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", avatar=" + avatar + + ", account=" + account + + ", password=" + password + + ", salt=" + salt + + ", name=" + name + + ", birthday=" + birthday + + ", sex=" + sex + + ", email=" + email + + ", phone=" + phone + + ", roleid=" + roleid + + ", deptid=" + deptid + + ", status=" + status + + ", createtime=" + createtime + + ", version=" + version + + ", targetid=" + targetid + + ", targetname=" + targetname + + ", passwordSync=" + passwordSync + + ", isSync=" + isSync + + ", simplename=" + simplename + + ", targetDeptidSync=" + targetDeptidSync + + ", loginIp=" + loginIp + + ", loginMac=" + loginMac + + ", lastTime=" + lastTime + + ", positionLng=" + positionLng + + ", positionLat=" + positionLat + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java new file mode 100644 index 0000000..81516b7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -0,0 +1,110 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_batch") +public class Batch extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_number") + private Long batchNumber; + @TableField("batch_count") + private Long batchCount; + @TableField("contract_id") + private Long contractId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("task_id") + private Long taskId; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(Long batchNumber) { + this.batchNumber = batchNumber; + } + + public Long getBatchCount() { + return batchCount; + } + + public void setBatchCount(Long batchCount) { + this.batchCount = batchCount; + } + + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Batch{" + + "id=" + id + + ", batchNumber=" + batchNumber + + ", batchCount=" + batchCount + + ", contractId=" + contractId + + ", taskId=" + taskId + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java new file mode 100644 index 0000000..893a1ed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -0,0 +1,186 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_contract") +public class Contract extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("contract_number") + private String contractNumber; + @TableField("contract_name") + private String contractName; + @TableField("contract_content") + private String contractContent; + @TableField("contract_amount") + private String contractAmount; + @TableField("external_project_apply") + private String externalProjectApply; + @TableField("external_contract_apply") + private String externalContractApply; + @TableField("principal") + private String principal; + @TableField("external_check_apply") + private String externalCheckApply; + @TableField("contract_factory") + private String contractFactory; + @TableField("createtime") + private Date createtime; + @TableField(exist = false) + private String paymentStatus; + @TableField(exist = false) + private String netFlow; + @TableField("deptid") + private String deptid; + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getContractName() { + return contractName; + } + + public void setContractName(String contractName) { + this.contractName = contractName; + } + + public String getContractContent() { + return contractContent; + } + + public void setContractContent(String contractContent) { + this.contractContent = contractContent; + } + + public String getContractAmount() { + return contractAmount; + } + + public void setContractAmount(String contractAmount) { + this.contractAmount = contractAmount; + } + + public String getExternalProjectApply() { + return externalProjectApply; + } + + public void setExternalProjectApply(String externalProjectApply) { + this.externalProjectApply = externalProjectApply; + } + + public String getExternalContractApply() { + return externalContractApply; + } + + public void setExternalContractApply(String externalContractApply) { + this.externalContractApply = externalContractApply; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalCheckApply() { + return externalCheckApply; + } + + public void setExternalCheckApply(String externalCheckApply) { + this.externalCheckApply = externalCheckApply; + } + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public String getContractFactory() { + return contractFactory; + } + + public void setContractFactory(String contractFactory) { + this.contractFactory = contractFactory; + } + + public String getNetFlow() { + return netFlow; + } + + public void setNetFlow(String netFlow) { + this.netFlow = netFlow; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Contract{" + + "contractNumber=" + contractNumber + + ", contractName=" + contractName + + ", contractContent=" + contractContent + + ", contractAmount=" + contractAmount + + ", externalProjectApply=" + externalProjectApply + + ", externalContractApply=" + externalContractApply + + ", principal=" + principal + + ", id=" + id + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java new file mode 100644 index 0000000..8718d91 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -0,0 +1,150 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_device") +public class Device extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_id") + private Long batchId; + private String devcode; + @TableField("devtype_id") + private Long devtypeId; + @TableField("is_send") + private String isSend; + private String longitude; + private String latitude; + @TableField("install_height") + private String installHeight; + private String iccid; + private Long imei; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public Long getImei() { + return imei; + } + + public void setImei(Long imei) { + this.imei = imei; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Device{" + + "id=" + id + + ", batchId=" + batchId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", isSend=" + isSend + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", installHeight=" + installHeight + + ", iccid=" + iccid + + ", imei=" + imei + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java new file mode 100644 index 0000000..870c36f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_payments") +public class Payments extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @TableField("paytime") + private Date paytime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getPaytime() { + return paytime; + } + + public void setPaytime(Date paytime) { + this.paytime = paytime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Payments{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", paytime=" + paytime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java new file mode 100644 index 0000000..ae6b585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -0,0 +1,285 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_device_type") +public class ProductDeviceType extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 产品名称 + */ + @TableField("product_name") + private String productName; + /** + * 产品型号 + */ + @TableField("product_model") + private String productModel; + + /** + * 通讯版本号 + */ + @TableField("communication_version") + private String communicationVersion; + + /** + * 产品类型 + */ + @TableField("product_type") + private String productType; + + /** + * 整机版本号 + */ + @TableField("machine_version") + private String machineVersion; + /** + * 硬件版本号 + */ + @TableField("hardware_version") + private String hardwareVersion; + /** + * 软件版本号 + */ + @TableField("software_version") + private String softwareVersion; + /** + * 设计归档 + */ + @TableField("design_archive") + private String designArchive; + /** + * 批产归档 + */ + @TableField("batch_filing") + private String batchFiling; + /** + * 状态 + */ + @TableField("status") + private Integer status; + /** + * 性能指标 + */ + @TableField("kpi") + private String kpi; + /** + * 批产负责人 + */ + @TableField("principal") + private String principal; + /** + * 定额汇总表 + */ + @TableField("quota_summary") + private String quotaSummary; + + /** + * 权属部门 + */ + @TableField("deptid") + private String deptid; + + /** + * 备注 + */ + @TableField("descn") + private String descn; + + @TableField("createtime") + private Date createtime; + + + @TableField(exist = false) + private String statusFmt; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } + + public String getMachineVersion() { + return machineVersion; + } + + public void setMachineVersion(String machineVersion) { + this.machineVersion = machineVersion; + } + + public String getHardwareVersion() { + return hardwareVersion; + } + + public void setHardwareVersion(String hardwareVersion) { + this.hardwareVersion = hardwareVersion; + } + + public String getSoftwareVersion() { + return softwareVersion; + } + + public void setSoftwareVersion(String softwareVersion) { + this.softwareVersion = softwareVersion; + } + + public String getDesignArchive() { + return designArchive; + } + + public void setDesignArchive(String designArchive) { + this.designArchive = designArchive; + } + + public String getBatchFiling() { + return batchFiling; + } + + public void setBatchFiling(String batchFiling) { + this.batchFiling = batchFiling; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getKpi() { + return kpi; + } + + public void setKpi(String kpi) { + this.kpi = kpi; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public String getQuotaSummary() { + return quotaSummary; + } + + public void setQuotaSummary(String quotaSummary) { + this.quotaSummary = quotaSummary; + } + + public String getStatusFmt() { + return statusFmt; + } + + public void setStatusFmt(String statusFmt) { + this.statusFmt = statusFmt; + } + + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getProductType() { + return productType; + } + + public void setProductType(String productType) { + this.productType = productType; + } + + public String getCommunicationVersion() { + return communicationVersion; + } + + public void setCommunicationVersion(String communicationVersion) { + this.communicationVersion = communicationVersion; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductDeviceType{" + + "id=" + id + + ", productName=" + productName + + ", productModel=" + productModel + + ", machineVersion=" + machineVersion + + ", hardwareVersion=" + hardwareVersion + + ", softwareVersion=" + softwareVersion + + ", designArchive=" + designArchive + + ", batchFiling=" + batchFiling + + ", status=" + status + + ", kpi=" + kpi + + ", principal=" + principal + + ", quotaSummary=" + quotaSummary + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java new file mode 100644 index 0000000..b0fd924 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java @@ -0,0 +1,187 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_factory_information") +public class ProductFactoryInformation extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 厂家名称 + */ + @TableField("name") + private String name; + /** + * 厂家联系人 + */ + @TableField("person_name") + private String personName; + /** + * 地址 + */ + @TableField("address") + private String address; + /** + * 电话 + */ + @TableField("phone") + private String phone; + /** + * 开户行 + */ + @TableField("bank") + private String bank; + /** + * 税号 + */ + @TableField("tax_number") + private String taxNumber; + /** + * 在产设备 + */ + @TableField("producting_device") + private String productingDevice; + /** + * 设备报价表 + */ + @TableField("equipment_quotation") + private String equipmentQuotation; + + @TableField("createtime") + private Date createtime =new Date(); + + @TableField("deptid") + private String deptid; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPersonName() { + return personName; + } + + public void setPersonName(String personName) { + this.personName = personName; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getBank() { + return bank; + } + + public void setBank(String bank) { + this.bank = bank; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getProductingDevice() { + return productingDevice; + } + + public void setProductingDevice(String productingDevice) { + this.productingDevice = productingDevice; + } + + public String getEquipmentQuotation() { + return equipmentQuotation; + } + + public void setEquipmentQuotation(String equipmentQuotation) { + this.equipmentQuotation = equipmentQuotation; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductFactoryInformation{" + + "id=" + id + + ", name=" + name + + ", personName=" + personName + + ", address=" + address + + ", phone=" + phone + + ", bank=" + bank + + ", taxNumber=" + taxNumber + + ", productingDevice=" + productingDevice + + ", equipmentQuotation=" + equipmentQuotation + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java new file mode 100644 index 0000000..00cbc92 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -0,0 +1,99 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@TableName("product_project") +public class Project extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_name") + private String projectName; + @TableField("project_simple_name") + private String projectSimpleName; + @TableField("project_manager") + private String projectManager; + private String descn; + @TableField("createtime") + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getProjectManager() { + return projectManager; + } + + public void setProjectManager(String projectManager) { + this.projectManager = projectManager; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Project{" + + "id=" + id + + ", projectName=" + projectName + + ", projectSimpleName=" + projectSimpleName + + ", projectManager=" + projectManager + + ", descn=" + descn + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java new file mode 100644 index 0000000..658c2e1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java @@ -0,0 +1,126 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_reimburse") +public class Reimburse extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mi:ss") + @TableField("reimburse_time") + private Date reimburseTime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getReimburseTime() { + return reimburseTime; + } + + public void setReimburseTime(Date reimburseTime) { + this.reimburseTime = reimburseTime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Reimburse{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", reimburseTime=" + reimburseTime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java new file mode 100644 index 0000000..987efa7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java @@ -0,0 +1,141 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_task") +public class Task extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_id") + private Long projectId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("devmode_id") + private String devmodeId; + private Long devcount; + @TableField("delivery_time") + private Date deliveryTime; + private String demand; + private Date createtime; + @TableField(exist = false) + private String deliveryTimeFmt; + + @TableField(exist = false) + private Long taskId; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getProjectId() { + return projectId; + } + + public void setProjectId(Long projectId) { + this.projectId = projectId; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDevmodeId() { + return devmodeId; + } + + public void setDevmodeId(String devmodeId) { + this.devmodeId = devmodeId; + } + + public Long getDevcount() { + return devcount; + } + + public void setDevcount(Long devcount) { + this.devcount = devcount; + } + + public Date getDeliveryTime() { + return deliveryTime; + } + + public void setDeliveryTime(Date deliveryTime) { + this.deliveryTime = deliveryTime; + } + + public String getDemand() { + return demand; + } + + public void setDemand(String demand) { + this.demand = demand; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeliveryTimeFmt() { + return deliveryTimeFmt; + } + + public void setDeliveryTimeFmt(String deliveryTimeFmt) { + this.deliveryTimeFmt = deliveryTimeFmt; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Task{" + + "id=" + id + + ", projectId=" + projectId + + ", devtypeId=" + devtypeId + + ", devmodeId=" + devmodeId + + ", devcount=" + devcount + + ", deliveryTime=" + deliveryTime + + ", demand=" + demand + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java new file mode 100644 index 0000000..7785de5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface IAccountService extends IService { + + /** + * 根据用户名查用户 + * @param userName + * @return + */ + Account findUserByName(String userName); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java new file mode 100644 index 0000000..d8b5e87 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IContractService extends IService { + List selectPageList(Page page, String keyword1, String keyword2, String keyword3); + List reportExport(String keyword1, String keyword2, String keyword3); + void importContract( List contracts); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java new file mode 100644 index 0000000..0f2d6e0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IPaymentsService extends IService { + + boolean validate(Long proId,String money,String reorder); + +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java new file mode 100644 index 0000000..4670df3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 集中器相关日志 + */ +public class ProjectDict extends AbstractDictMap { + public static final String PROJECT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + @Override + public void init() { + put("projectName","项目名称"); + put("projectSimpleName","项目简称"); + put("projectManager","项目经理"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java new file mode 100644 index 0000000..7981a17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dto; + +/** + * 用于设备类型展示 + * @author test203 + * @date 2020-04-03 + */ +public class DeviceTypeDto { + private Long id; + private String productName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java new file mode 100644 index 0000000..f254585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java @@ -0,0 +1,361 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.math.BigDecimal; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; + +/** + *

+ * 管理员表 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@TableName("sys_user") +public class Account extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + /** + * 头像 + */ + private String avatar; + /** + * 账号 + */ + private String account; + /** + * 密码 + */ + private String password; + /** + * md5密码盐 + */ + private String salt; + /** + * 名字 + */ + private String name; + /** + * 生日 + */ + private Date birthday; + /** + * 性别(1:男 2:女) + */ + private String sex; + /** + * 电子邮件 + */ + private String email; + /** + * 电话 + */ + private String phone; + /** + * 角色id + */ + private String roleid; + /** + * 部门id + */ + private Long deptid; + /** + * 状态(1:启用 2:冻结 3:删除) + */ + private String status; + /** + * 创建时间 + */ + private Date createtime; + /** + * 保留字段 + */ + private Integer version; + private String targetid; + private String targetname; + @TableField("password_sync") + private String passwordSync; + @TableField("IS_SYNC") + private Integer isSync; + private String simplename; + /** + * 同步组织ID + */ + @TableField("TARGET_DEPTID_SYNC") + private String targetDeptidSync; + @TableField("LOGIN_IP") + private String loginIp; + @TableField("LOGIN_MAC") + private String loginMac; + /** + * 最后在线时间 + */ + @TableField("LAST_TIME") + private Date lastTime; + /** + * 经度 + */ + @TableField("POSITION_LNG") + private BigDecimal positionLng; + /** + * 纬度 + */ + @TableField("POSITION_LAT") + private BigDecimal positionLat; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt() { + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getRoleid() { + return roleid; + } + + public void setRoleid(String roleid) { + this.roleid = roleid; + } + + public Long getDeptid() { + return deptid; + } + + public void setDeptid(Long deptid) { + this.deptid = deptid; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + public String getTargetid() { + return targetid; + } + + public void setTargetid(String targetid) { + this.targetid = targetid; + } + + public String getTargetname() { + return targetname; + } + + public void setTargetname(String targetname) { + this.targetname = targetname; + } + + public String getPasswordSync() { + return passwordSync; + } + + public void setPasswordSync(String passwordSync) { + this.passwordSync = passwordSync; + } + + public Integer getIsSync() { + return isSync; + } + + public void setIsSync(Integer isSync) { + this.isSync = isSync; + } + + public String getSimplename() { + return simplename; + } + + public void setSimplename(String simplename) { + this.simplename = simplename; + } + + public String getTargetDeptidSync() { + return targetDeptidSync; + } + + public void setTargetDeptidSync(String targetDeptidSync) { + this.targetDeptidSync = targetDeptidSync; + } + + public String getLoginIp() { + return loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getLoginMac() { + return loginMac; + } + + public void setLoginMac(String loginMac) { + this.loginMac = loginMac; + } + + public Date getLastTime() { + return lastTime; + } + + public void setLastTime(Date lastTime) { + this.lastTime = lastTime; + } + + public BigDecimal getPositionLng() { + return positionLng; + } + + public void setPositionLng(BigDecimal positionLng) { + this.positionLng = positionLng; + } + + public BigDecimal getPositionLat() { + return positionLat; + } + + public void setPositionLat(BigDecimal positionLat) { + this.positionLat = positionLat; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", avatar=" + avatar + + ", account=" + account + + ", password=" + password + + ", salt=" + salt + + ", name=" + name + + ", birthday=" + birthday + + ", sex=" + sex + + ", email=" + email + + ", phone=" + phone + + ", roleid=" + roleid + + ", deptid=" + deptid + + ", status=" + status + + ", createtime=" + createtime + + ", version=" + version + + ", targetid=" + targetid + + ", targetname=" + targetname + + ", passwordSync=" + passwordSync + + ", isSync=" + isSync + + ", simplename=" + simplename + + ", targetDeptidSync=" + targetDeptidSync + + ", loginIp=" + loginIp + + ", loginMac=" + loginMac + + ", lastTime=" + lastTime + + ", positionLng=" + positionLng + + ", positionLat=" + positionLat + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java new file mode 100644 index 0000000..81516b7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -0,0 +1,110 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_batch") +public class Batch extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_number") + private Long batchNumber; + @TableField("batch_count") + private Long batchCount; + @TableField("contract_id") + private Long contractId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("task_id") + private Long taskId; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(Long batchNumber) { + this.batchNumber = batchNumber; + } + + public Long getBatchCount() { + return batchCount; + } + + public void setBatchCount(Long batchCount) { + this.batchCount = batchCount; + } + + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Batch{" + + "id=" + id + + ", batchNumber=" + batchNumber + + ", batchCount=" + batchCount + + ", contractId=" + contractId + + ", taskId=" + taskId + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java new file mode 100644 index 0000000..893a1ed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -0,0 +1,186 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_contract") +public class Contract extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("contract_number") + private String contractNumber; + @TableField("contract_name") + private String contractName; + @TableField("contract_content") + private String contractContent; + @TableField("contract_amount") + private String contractAmount; + @TableField("external_project_apply") + private String externalProjectApply; + @TableField("external_contract_apply") + private String externalContractApply; + @TableField("principal") + private String principal; + @TableField("external_check_apply") + private String externalCheckApply; + @TableField("contract_factory") + private String contractFactory; + @TableField("createtime") + private Date createtime; + @TableField(exist = false) + private String paymentStatus; + @TableField(exist = false) + private String netFlow; + @TableField("deptid") + private String deptid; + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getContractName() { + return contractName; + } + + public void setContractName(String contractName) { + this.contractName = contractName; + } + + public String getContractContent() { + return contractContent; + } + + public void setContractContent(String contractContent) { + this.contractContent = contractContent; + } + + public String getContractAmount() { + return contractAmount; + } + + public void setContractAmount(String contractAmount) { + this.contractAmount = contractAmount; + } + + public String getExternalProjectApply() { + return externalProjectApply; + } + + public void setExternalProjectApply(String externalProjectApply) { + this.externalProjectApply = externalProjectApply; + } + + public String getExternalContractApply() { + return externalContractApply; + } + + public void setExternalContractApply(String externalContractApply) { + this.externalContractApply = externalContractApply; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalCheckApply() { + return externalCheckApply; + } + + public void setExternalCheckApply(String externalCheckApply) { + this.externalCheckApply = externalCheckApply; + } + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public String getContractFactory() { + return contractFactory; + } + + public void setContractFactory(String contractFactory) { + this.contractFactory = contractFactory; + } + + public String getNetFlow() { + return netFlow; + } + + public void setNetFlow(String netFlow) { + this.netFlow = netFlow; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Contract{" + + "contractNumber=" + contractNumber + + ", contractName=" + contractName + + ", contractContent=" + contractContent + + ", contractAmount=" + contractAmount + + ", externalProjectApply=" + externalProjectApply + + ", externalContractApply=" + externalContractApply + + ", principal=" + principal + + ", id=" + id + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java new file mode 100644 index 0000000..8718d91 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -0,0 +1,150 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_device") +public class Device extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_id") + private Long batchId; + private String devcode; + @TableField("devtype_id") + private Long devtypeId; + @TableField("is_send") + private String isSend; + private String longitude; + private String latitude; + @TableField("install_height") + private String installHeight; + private String iccid; + private Long imei; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public Long getImei() { + return imei; + } + + public void setImei(Long imei) { + this.imei = imei; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Device{" + + "id=" + id + + ", batchId=" + batchId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", isSend=" + isSend + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", installHeight=" + installHeight + + ", iccid=" + iccid + + ", imei=" + imei + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java new file mode 100644 index 0000000..870c36f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_payments") +public class Payments extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @TableField("paytime") + private Date paytime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getPaytime() { + return paytime; + } + + public void setPaytime(Date paytime) { + this.paytime = paytime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Payments{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", paytime=" + paytime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java new file mode 100644 index 0000000..ae6b585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -0,0 +1,285 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_device_type") +public class ProductDeviceType extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 产品名称 + */ + @TableField("product_name") + private String productName; + /** + * 产品型号 + */ + @TableField("product_model") + private String productModel; + + /** + * 通讯版本号 + */ + @TableField("communication_version") + private String communicationVersion; + + /** + * 产品类型 + */ + @TableField("product_type") + private String productType; + + /** + * 整机版本号 + */ + @TableField("machine_version") + private String machineVersion; + /** + * 硬件版本号 + */ + @TableField("hardware_version") + private String hardwareVersion; + /** + * 软件版本号 + */ + @TableField("software_version") + private String softwareVersion; + /** + * 设计归档 + */ + @TableField("design_archive") + private String designArchive; + /** + * 批产归档 + */ + @TableField("batch_filing") + private String batchFiling; + /** + * 状态 + */ + @TableField("status") + private Integer status; + /** + * 性能指标 + */ + @TableField("kpi") + private String kpi; + /** + * 批产负责人 + */ + @TableField("principal") + private String principal; + /** + * 定额汇总表 + */ + @TableField("quota_summary") + private String quotaSummary; + + /** + * 权属部门 + */ + @TableField("deptid") + private String deptid; + + /** + * 备注 + */ + @TableField("descn") + private String descn; + + @TableField("createtime") + private Date createtime; + + + @TableField(exist = false) + private String statusFmt; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } + + public String getMachineVersion() { + return machineVersion; + } + + public void setMachineVersion(String machineVersion) { + this.machineVersion = machineVersion; + } + + public String getHardwareVersion() { + return hardwareVersion; + } + + public void setHardwareVersion(String hardwareVersion) { + this.hardwareVersion = hardwareVersion; + } + + public String getSoftwareVersion() { + return softwareVersion; + } + + public void setSoftwareVersion(String softwareVersion) { + this.softwareVersion = softwareVersion; + } + + public String getDesignArchive() { + return designArchive; + } + + public void setDesignArchive(String designArchive) { + this.designArchive = designArchive; + } + + public String getBatchFiling() { + return batchFiling; + } + + public void setBatchFiling(String batchFiling) { + this.batchFiling = batchFiling; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getKpi() { + return kpi; + } + + public void setKpi(String kpi) { + this.kpi = kpi; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public String getQuotaSummary() { + return quotaSummary; + } + + public void setQuotaSummary(String quotaSummary) { + this.quotaSummary = quotaSummary; + } + + public String getStatusFmt() { + return statusFmt; + } + + public void setStatusFmt(String statusFmt) { + this.statusFmt = statusFmt; + } + + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getProductType() { + return productType; + } + + public void setProductType(String productType) { + this.productType = productType; + } + + public String getCommunicationVersion() { + return communicationVersion; + } + + public void setCommunicationVersion(String communicationVersion) { + this.communicationVersion = communicationVersion; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductDeviceType{" + + "id=" + id + + ", productName=" + productName + + ", productModel=" + productModel + + ", machineVersion=" + machineVersion + + ", hardwareVersion=" + hardwareVersion + + ", softwareVersion=" + softwareVersion + + ", designArchive=" + designArchive + + ", batchFiling=" + batchFiling + + ", status=" + status + + ", kpi=" + kpi + + ", principal=" + principal + + ", quotaSummary=" + quotaSummary + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java new file mode 100644 index 0000000..b0fd924 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java @@ -0,0 +1,187 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_factory_information") +public class ProductFactoryInformation extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 厂家名称 + */ + @TableField("name") + private String name; + /** + * 厂家联系人 + */ + @TableField("person_name") + private String personName; + /** + * 地址 + */ + @TableField("address") + private String address; + /** + * 电话 + */ + @TableField("phone") + private String phone; + /** + * 开户行 + */ + @TableField("bank") + private String bank; + /** + * 税号 + */ + @TableField("tax_number") + private String taxNumber; + /** + * 在产设备 + */ + @TableField("producting_device") + private String productingDevice; + /** + * 设备报价表 + */ + @TableField("equipment_quotation") + private String equipmentQuotation; + + @TableField("createtime") + private Date createtime =new Date(); + + @TableField("deptid") + private String deptid; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPersonName() { + return personName; + } + + public void setPersonName(String personName) { + this.personName = personName; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getBank() { + return bank; + } + + public void setBank(String bank) { + this.bank = bank; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getProductingDevice() { + return productingDevice; + } + + public void setProductingDevice(String productingDevice) { + this.productingDevice = productingDevice; + } + + public String getEquipmentQuotation() { + return equipmentQuotation; + } + + public void setEquipmentQuotation(String equipmentQuotation) { + this.equipmentQuotation = equipmentQuotation; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductFactoryInformation{" + + "id=" + id + + ", name=" + name + + ", personName=" + personName + + ", address=" + address + + ", phone=" + phone + + ", bank=" + bank + + ", taxNumber=" + taxNumber + + ", productingDevice=" + productingDevice + + ", equipmentQuotation=" + equipmentQuotation + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java new file mode 100644 index 0000000..00cbc92 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -0,0 +1,99 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@TableName("product_project") +public class Project extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_name") + private String projectName; + @TableField("project_simple_name") + private String projectSimpleName; + @TableField("project_manager") + private String projectManager; + private String descn; + @TableField("createtime") + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getProjectManager() { + return projectManager; + } + + public void setProjectManager(String projectManager) { + this.projectManager = projectManager; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Project{" + + "id=" + id + + ", projectName=" + projectName + + ", projectSimpleName=" + projectSimpleName + + ", projectManager=" + projectManager + + ", descn=" + descn + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java new file mode 100644 index 0000000..658c2e1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java @@ -0,0 +1,126 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_reimburse") +public class Reimburse extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mi:ss") + @TableField("reimburse_time") + private Date reimburseTime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getReimburseTime() { + return reimburseTime; + } + + public void setReimburseTime(Date reimburseTime) { + this.reimburseTime = reimburseTime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Reimburse{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", reimburseTime=" + reimburseTime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java new file mode 100644 index 0000000..987efa7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java @@ -0,0 +1,141 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_task") +public class Task extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_id") + private Long projectId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("devmode_id") + private String devmodeId; + private Long devcount; + @TableField("delivery_time") + private Date deliveryTime; + private String demand; + private Date createtime; + @TableField(exist = false) + private String deliveryTimeFmt; + + @TableField(exist = false) + private Long taskId; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getProjectId() { + return projectId; + } + + public void setProjectId(Long projectId) { + this.projectId = projectId; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDevmodeId() { + return devmodeId; + } + + public void setDevmodeId(String devmodeId) { + this.devmodeId = devmodeId; + } + + public Long getDevcount() { + return devcount; + } + + public void setDevcount(Long devcount) { + this.devcount = devcount; + } + + public Date getDeliveryTime() { + return deliveryTime; + } + + public void setDeliveryTime(Date deliveryTime) { + this.deliveryTime = deliveryTime; + } + + public String getDemand() { + return demand; + } + + public void setDemand(String demand) { + this.demand = demand; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeliveryTimeFmt() { + return deliveryTimeFmt; + } + + public void setDeliveryTimeFmt(String deliveryTimeFmt) { + this.deliveryTimeFmt = deliveryTimeFmt; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Task{" + + "id=" + id + + ", projectId=" + projectId + + ", devtypeId=" + devtypeId + + ", devmodeId=" + devmodeId + + ", devcount=" + devcount + + ", deliveryTime=" + deliveryTime + + ", demand=" + demand + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java new file mode 100644 index 0000000..7785de5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface IAccountService extends IService { + + /** + * 根据用户名查用户 + * @param userName + * @return + */ + Account findUserByName(String userName); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java new file mode 100644 index 0000000..d8b5e87 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IContractService extends IService { + List selectPageList(Page page, String keyword1, String keyword2, String keyword3); + List reportExport(String keyword1, String keyword2, String keyword3); + void importContract( List contracts); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java new file mode 100644 index 0000000..0f2d6e0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IPaymentsService extends IService { + + boolean validate(Long proId,String money,String reorder); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java new file mode 100644 index 0000000..71490df --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -0,0 +1,62 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductDeviceTypeService extends IService { + + /** + * 批量导入设备类型列表 + * @param results + */ + void importDeviceType(List results); + + /** + * 导出列表 + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List reportExport(String keyword1,String keyword2,String keyword3); + + + /** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectPageDataScope(DataScope dataScope, Page page, + String keyword1, String keyword2, String keyword3); + + /** + * 获取在产的设备类型 + * @return + */ + List selectDeviceTypeList(); + + /** + * 根据产品型号获取产品 + * @param deviceModel + * @return + */ + ProductDeviceType selectDeviceTypeByModel(String deviceModel); +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java new file mode 100644 index 0000000..4670df3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 集中器相关日志 + */ +public class ProjectDict extends AbstractDictMap { + public static final String PROJECT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + @Override + public void init() { + put("projectName","项目名称"); + put("projectSimpleName","项目简称"); + put("projectManager","项目经理"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java new file mode 100644 index 0000000..7981a17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dto; + +/** + * 用于设备类型展示 + * @author test203 + * @date 2020-04-03 + */ +public class DeviceTypeDto { + private Long id; + private String productName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java new file mode 100644 index 0000000..f254585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java @@ -0,0 +1,361 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.math.BigDecimal; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; + +/** + *

+ * 管理员表 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@TableName("sys_user") +public class Account extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + /** + * 头像 + */ + private String avatar; + /** + * 账号 + */ + private String account; + /** + * 密码 + */ + private String password; + /** + * md5密码盐 + */ + private String salt; + /** + * 名字 + */ + private String name; + /** + * 生日 + */ + private Date birthday; + /** + * 性别(1:男 2:女) + */ + private String sex; + /** + * 电子邮件 + */ + private String email; + /** + * 电话 + */ + private String phone; + /** + * 角色id + */ + private String roleid; + /** + * 部门id + */ + private Long deptid; + /** + * 状态(1:启用 2:冻结 3:删除) + */ + private String status; + /** + * 创建时间 + */ + private Date createtime; + /** + * 保留字段 + */ + private Integer version; + private String targetid; + private String targetname; + @TableField("password_sync") + private String passwordSync; + @TableField("IS_SYNC") + private Integer isSync; + private String simplename; + /** + * 同步组织ID + */ + @TableField("TARGET_DEPTID_SYNC") + private String targetDeptidSync; + @TableField("LOGIN_IP") + private String loginIp; + @TableField("LOGIN_MAC") + private String loginMac; + /** + * 最后在线时间 + */ + @TableField("LAST_TIME") + private Date lastTime; + /** + * 经度 + */ + @TableField("POSITION_LNG") + private BigDecimal positionLng; + /** + * 纬度 + */ + @TableField("POSITION_LAT") + private BigDecimal positionLat; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt() { + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getRoleid() { + return roleid; + } + + public void setRoleid(String roleid) { + this.roleid = roleid; + } + + public Long getDeptid() { + return deptid; + } + + public void setDeptid(Long deptid) { + this.deptid = deptid; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + public String getTargetid() { + return targetid; + } + + public void setTargetid(String targetid) { + this.targetid = targetid; + } + + public String getTargetname() { + return targetname; + } + + public void setTargetname(String targetname) { + this.targetname = targetname; + } + + public String getPasswordSync() { + return passwordSync; + } + + public void setPasswordSync(String passwordSync) { + this.passwordSync = passwordSync; + } + + public Integer getIsSync() { + return isSync; + } + + public void setIsSync(Integer isSync) { + this.isSync = isSync; + } + + public String getSimplename() { + return simplename; + } + + public void setSimplename(String simplename) { + this.simplename = simplename; + } + + public String getTargetDeptidSync() { + return targetDeptidSync; + } + + public void setTargetDeptidSync(String targetDeptidSync) { + this.targetDeptidSync = targetDeptidSync; + } + + public String getLoginIp() { + return loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getLoginMac() { + return loginMac; + } + + public void setLoginMac(String loginMac) { + this.loginMac = loginMac; + } + + public Date getLastTime() { + return lastTime; + } + + public void setLastTime(Date lastTime) { + this.lastTime = lastTime; + } + + public BigDecimal getPositionLng() { + return positionLng; + } + + public void setPositionLng(BigDecimal positionLng) { + this.positionLng = positionLng; + } + + public BigDecimal getPositionLat() { + return positionLat; + } + + public void setPositionLat(BigDecimal positionLat) { + this.positionLat = positionLat; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", avatar=" + avatar + + ", account=" + account + + ", password=" + password + + ", salt=" + salt + + ", name=" + name + + ", birthday=" + birthday + + ", sex=" + sex + + ", email=" + email + + ", phone=" + phone + + ", roleid=" + roleid + + ", deptid=" + deptid + + ", status=" + status + + ", createtime=" + createtime + + ", version=" + version + + ", targetid=" + targetid + + ", targetname=" + targetname + + ", passwordSync=" + passwordSync + + ", isSync=" + isSync + + ", simplename=" + simplename + + ", targetDeptidSync=" + targetDeptidSync + + ", loginIp=" + loginIp + + ", loginMac=" + loginMac + + ", lastTime=" + lastTime + + ", positionLng=" + positionLng + + ", positionLat=" + positionLat + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java new file mode 100644 index 0000000..81516b7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -0,0 +1,110 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_batch") +public class Batch extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_number") + private Long batchNumber; + @TableField("batch_count") + private Long batchCount; + @TableField("contract_id") + private Long contractId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("task_id") + private Long taskId; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(Long batchNumber) { + this.batchNumber = batchNumber; + } + + public Long getBatchCount() { + return batchCount; + } + + public void setBatchCount(Long batchCount) { + this.batchCount = batchCount; + } + + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Batch{" + + "id=" + id + + ", batchNumber=" + batchNumber + + ", batchCount=" + batchCount + + ", contractId=" + contractId + + ", taskId=" + taskId + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java new file mode 100644 index 0000000..893a1ed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -0,0 +1,186 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_contract") +public class Contract extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("contract_number") + private String contractNumber; + @TableField("contract_name") + private String contractName; + @TableField("contract_content") + private String contractContent; + @TableField("contract_amount") + private String contractAmount; + @TableField("external_project_apply") + private String externalProjectApply; + @TableField("external_contract_apply") + private String externalContractApply; + @TableField("principal") + private String principal; + @TableField("external_check_apply") + private String externalCheckApply; + @TableField("contract_factory") + private String contractFactory; + @TableField("createtime") + private Date createtime; + @TableField(exist = false) + private String paymentStatus; + @TableField(exist = false) + private String netFlow; + @TableField("deptid") + private String deptid; + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getContractName() { + return contractName; + } + + public void setContractName(String contractName) { + this.contractName = contractName; + } + + public String getContractContent() { + return contractContent; + } + + public void setContractContent(String contractContent) { + this.contractContent = contractContent; + } + + public String getContractAmount() { + return contractAmount; + } + + public void setContractAmount(String contractAmount) { + this.contractAmount = contractAmount; + } + + public String getExternalProjectApply() { + return externalProjectApply; + } + + public void setExternalProjectApply(String externalProjectApply) { + this.externalProjectApply = externalProjectApply; + } + + public String getExternalContractApply() { + return externalContractApply; + } + + public void setExternalContractApply(String externalContractApply) { + this.externalContractApply = externalContractApply; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalCheckApply() { + return externalCheckApply; + } + + public void setExternalCheckApply(String externalCheckApply) { + this.externalCheckApply = externalCheckApply; + } + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public String getContractFactory() { + return contractFactory; + } + + public void setContractFactory(String contractFactory) { + this.contractFactory = contractFactory; + } + + public String getNetFlow() { + return netFlow; + } + + public void setNetFlow(String netFlow) { + this.netFlow = netFlow; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Contract{" + + "contractNumber=" + contractNumber + + ", contractName=" + contractName + + ", contractContent=" + contractContent + + ", contractAmount=" + contractAmount + + ", externalProjectApply=" + externalProjectApply + + ", externalContractApply=" + externalContractApply + + ", principal=" + principal + + ", id=" + id + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java new file mode 100644 index 0000000..8718d91 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -0,0 +1,150 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_device") +public class Device extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_id") + private Long batchId; + private String devcode; + @TableField("devtype_id") + private Long devtypeId; + @TableField("is_send") + private String isSend; + private String longitude; + private String latitude; + @TableField("install_height") + private String installHeight; + private String iccid; + private Long imei; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public Long getImei() { + return imei; + } + + public void setImei(Long imei) { + this.imei = imei; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Device{" + + "id=" + id + + ", batchId=" + batchId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", isSend=" + isSend + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", installHeight=" + installHeight + + ", iccid=" + iccid + + ", imei=" + imei + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java new file mode 100644 index 0000000..870c36f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_payments") +public class Payments extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @TableField("paytime") + private Date paytime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getPaytime() { + return paytime; + } + + public void setPaytime(Date paytime) { + this.paytime = paytime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Payments{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", paytime=" + paytime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java new file mode 100644 index 0000000..ae6b585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -0,0 +1,285 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_device_type") +public class ProductDeviceType extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 产品名称 + */ + @TableField("product_name") + private String productName; + /** + * 产品型号 + */ + @TableField("product_model") + private String productModel; + + /** + * 通讯版本号 + */ + @TableField("communication_version") + private String communicationVersion; + + /** + * 产品类型 + */ + @TableField("product_type") + private String productType; + + /** + * 整机版本号 + */ + @TableField("machine_version") + private String machineVersion; + /** + * 硬件版本号 + */ + @TableField("hardware_version") + private String hardwareVersion; + /** + * 软件版本号 + */ + @TableField("software_version") + private String softwareVersion; + /** + * 设计归档 + */ + @TableField("design_archive") + private String designArchive; + /** + * 批产归档 + */ + @TableField("batch_filing") + private String batchFiling; + /** + * 状态 + */ + @TableField("status") + private Integer status; + /** + * 性能指标 + */ + @TableField("kpi") + private String kpi; + /** + * 批产负责人 + */ + @TableField("principal") + private String principal; + /** + * 定额汇总表 + */ + @TableField("quota_summary") + private String quotaSummary; + + /** + * 权属部门 + */ + @TableField("deptid") + private String deptid; + + /** + * 备注 + */ + @TableField("descn") + private String descn; + + @TableField("createtime") + private Date createtime; + + + @TableField(exist = false) + private String statusFmt; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } + + public String getMachineVersion() { + return machineVersion; + } + + public void setMachineVersion(String machineVersion) { + this.machineVersion = machineVersion; + } + + public String getHardwareVersion() { + return hardwareVersion; + } + + public void setHardwareVersion(String hardwareVersion) { + this.hardwareVersion = hardwareVersion; + } + + public String getSoftwareVersion() { + return softwareVersion; + } + + public void setSoftwareVersion(String softwareVersion) { + this.softwareVersion = softwareVersion; + } + + public String getDesignArchive() { + return designArchive; + } + + public void setDesignArchive(String designArchive) { + this.designArchive = designArchive; + } + + public String getBatchFiling() { + return batchFiling; + } + + public void setBatchFiling(String batchFiling) { + this.batchFiling = batchFiling; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getKpi() { + return kpi; + } + + public void setKpi(String kpi) { + this.kpi = kpi; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public String getQuotaSummary() { + return quotaSummary; + } + + public void setQuotaSummary(String quotaSummary) { + this.quotaSummary = quotaSummary; + } + + public String getStatusFmt() { + return statusFmt; + } + + public void setStatusFmt(String statusFmt) { + this.statusFmt = statusFmt; + } + + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getProductType() { + return productType; + } + + public void setProductType(String productType) { + this.productType = productType; + } + + public String getCommunicationVersion() { + return communicationVersion; + } + + public void setCommunicationVersion(String communicationVersion) { + this.communicationVersion = communicationVersion; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductDeviceType{" + + "id=" + id + + ", productName=" + productName + + ", productModel=" + productModel + + ", machineVersion=" + machineVersion + + ", hardwareVersion=" + hardwareVersion + + ", softwareVersion=" + softwareVersion + + ", designArchive=" + designArchive + + ", batchFiling=" + batchFiling + + ", status=" + status + + ", kpi=" + kpi + + ", principal=" + principal + + ", quotaSummary=" + quotaSummary + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java new file mode 100644 index 0000000..b0fd924 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java @@ -0,0 +1,187 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_factory_information") +public class ProductFactoryInformation extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 厂家名称 + */ + @TableField("name") + private String name; + /** + * 厂家联系人 + */ + @TableField("person_name") + private String personName; + /** + * 地址 + */ + @TableField("address") + private String address; + /** + * 电话 + */ + @TableField("phone") + private String phone; + /** + * 开户行 + */ + @TableField("bank") + private String bank; + /** + * 税号 + */ + @TableField("tax_number") + private String taxNumber; + /** + * 在产设备 + */ + @TableField("producting_device") + private String productingDevice; + /** + * 设备报价表 + */ + @TableField("equipment_quotation") + private String equipmentQuotation; + + @TableField("createtime") + private Date createtime =new Date(); + + @TableField("deptid") + private String deptid; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPersonName() { + return personName; + } + + public void setPersonName(String personName) { + this.personName = personName; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getBank() { + return bank; + } + + public void setBank(String bank) { + this.bank = bank; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getProductingDevice() { + return productingDevice; + } + + public void setProductingDevice(String productingDevice) { + this.productingDevice = productingDevice; + } + + public String getEquipmentQuotation() { + return equipmentQuotation; + } + + public void setEquipmentQuotation(String equipmentQuotation) { + this.equipmentQuotation = equipmentQuotation; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductFactoryInformation{" + + "id=" + id + + ", name=" + name + + ", personName=" + personName + + ", address=" + address + + ", phone=" + phone + + ", bank=" + bank + + ", taxNumber=" + taxNumber + + ", productingDevice=" + productingDevice + + ", equipmentQuotation=" + equipmentQuotation + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java new file mode 100644 index 0000000..00cbc92 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -0,0 +1,99 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@TableName("product_project") +public class Project extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_name") + private String projectName; + @TableField("project_simple_name") + private String projectSimpleName; + @TableField("project_manager") + private String projectManager; + private String descn; + @TableField("createtime") + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getProjectManager() { + return projectManager; + } + + public void setProjectManager(String projectManager) { + this.projectManager = projectManager; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Project{" + + "id=" + id + + ", projectName=" + projectName + + ", projectSimpleName=" + projectSimpleName + + ", projectManager=" + projectManager + + ", descn=" + descn + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java new file mode 100644 index 0000000..658c2e1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java @@ -0,0 +1,126 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_reimburse") +public class Reimburse extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mi:ss") + @TableField("reimburse_time") + private Date reimburseTime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getReimburseTime() { + return reimburseTime; + } + + public void setReimburseTime(Date reimburseTime) { + this.reimburseTime = reimburseTime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Reimburse{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", reimburseTime=" + reimburseTime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java new file mode 100644 index 0000000..987efa7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java @@ -0,0 +1,141 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_task") +public class Task extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_id") + private Long projectId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("devmode_id") + private String devmodeId; + private Long devcount; + @TableField("delivery_time") + private Date deliveryTime; + private String demand; + private Date createtime; + @TableField(exist = false) + private String deliveryTimeFmt; + + @TableField(exist = false) + private Long taskId; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getProjectId() { + return projectId; + } + + public void setProjectId(Long projectId) { + this.projectId = projectId; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDevmodeId() { + return devmodeId; + } + + public void setDevmodeId(String devmodeId) { + this.devmodeId = devmodeId; + } + + public Long getDevcount() { + return devcount; + } + + public void setDevcount(Long devcount) { + this.devcount = devcount; + } + + public Date getDeliveryTime() { + return deliveryTime; + } + + public void setDeliveryTime(Date deliveryTime) { + this.deliveryTime = deliveryTime; + } + + public String getDemand() { + return demand; + } + + public void setDemand(String demand) { + this.demand = demand; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeliveryTimeFmt() { + return deliveryTimeFmt; + } + + public void setDeliveryTimeFmt(String deliveryTimeFmt) { + this.deliveryTimeFmt = deliveryTimeFmt; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Task{" + + "id=" + id + + ", projectId=" + projectId + + ", devtypeId=" + devtypeId + + ", devmodeId=" + devmodeId + + ", devcount=" + devcount + + ", deliveryTime=" + deliveryTime + + ", demand=" + demand + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java new file mode 100644 index 0000000..7785de5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface IAccountService extends IService { + + /** + * 根据用户名查用户 + * @param userName + * @return + */ + Account findUserByName(String userName); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java new file mode 100644 index 0000000..d8b5e87 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IContractService extends IService { + List selectPageList(Page page, String keyword1, String keyword2, String keyword3); + List reportExport(String keyword1, String keyword2, String keyword3); + void importContract( List contracts); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java new file mode 100644 index 0000000..0f2d6e0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IPaymentsService extends IService { + + boolean validate(Long proId,String money,String reorder); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java new file mode 100644 index 0000000..71490df --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -0,0 +1,62 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductDeviceTypeService extends IService { + + /** + * 批量导入设备类型列表 + * @param results + */ + void importDeviceType(List results); + + /** + * 导出列表 + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List reportExport(String keyword1,String keyword2,String keyword3); + + + /** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectPageDataScope(DataScope dataScope, Page page, + String keyword1, String keyword2, String keyword3); + + /** + * 获取在产的设备类型 + * @return + */ + List selectDeviceTypeList(); + + /** + * 根据产品型号获取产品 + * @param deviceModel + * @return + */ + ProductDeviceType selectDeviceTypeByModel(String deviceModel); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java new file mode 100644 index 0000000..455f60a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductFactoryInformationService extends IService { + /** + * 根据条件导出列表 + * @param keyword1 + * @param keyword2 + * @return + */ + List reportExport(String keyword1, String keyword2); + + + /** + * 导入 + * @param results + */ + void importDeviceType(List results); +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java new file mode 100644 index 0000000..4670df3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 集中器相关日志 + */ +public class ProjectDict extends AbstractDictMap { + public static final String PROJECT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + @Override + public void init() { + put("projectName","项目名称"); + put("projectSimpleName","项目简称"); + put("projectManager","项目经理"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java new file mode 100644 index 0000000..7981a17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dto; + +/** + * 用于设备类型展示 + * @author test203 + * @date 2020-04-03 + */ +public class DeviceTypeDto { + private Long id; + private String productName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java new file mode 100644 index 0000000..f254585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java @@ -0,0 +1,361 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.math.BigDecimal; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; + +/** + *

+ * 管理员表 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@TableName("sys_user") +public class Account extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + /** + * 头像 + */ + private String avatar; + /** + * 账号 + */ + private String account; + /** + * 密码 + */ + private String password; + /** + * md5密码盐 + */ + private String salt; + /** + * 名字 + */ + private String name; + /** + * 生日 + */ + private Date birthday; + /** + * 性别(1:男 2:女) + */ + private String sex; + /** + * 电子邮件 + */ + private String email; + /** + * 电话 + */ + private String phone; + /** + * 角色id + */ + private String roleid; + /** + * 部门id + */ + private Long deptid; + /** + * 状态(1:启用 2:冻结 3:删除) + */ + private String status; + /** + * 创建时间 + */ + private Date createtime; + /** + * 保留字段 + */ + private Integer version; + private String targetid; + private String targetname; + @TableField("password_sync") + private String passwordSync; + @TableField("IS_SYNC") + private Integer isSync; + private String simplename; + /** + * 同步组织ID + */ + @TableField("TARGET_DEPTID_SYNC") + private String targetDeptidSync; + @TableField("LOGIN_IP") + private String loginIp; + @TableField("LOGIN_MAC") + private String loginMac; + /** + * 最后在线时间 + */ + @TableField("LAST_TIME") + private Date lastTime; + /** + * 经度 + */ + @TableField("POSITION_LNG") + private BigDecimal positionLng; + /** + * 纬度 + */ + @TableField("POSITION_LAT") + private BigDecimal positionLat; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt() { + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getRoleid() { + return roleid; + } + + public void setRoleid(String roleid) { + this.roleid = roleid; + } + + public Long getDeptid() { + return deptid; + } + + public void setDeptid(Long deptid) { + this.deptid = deptid; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + public String getTargetid() { + return targetid; + } + + public void setTargetid(String targetid) { + this.targetid = targetid; + } + + public String getTargetname() { + return targetname; + } + + public void setTargetname(String targetname) { + this.targetname = targetname; + } + + public String getPasswordSync() { + return passwordSync; + } + + public void setPasswordSync(String passwordSync) { + this.passwordSync = passwordSync; + } + + public Integer getIsSync() { + return isSync; + } + + public void setIsSync(Integer isSync) { + this.isSync = isSync; + } + + public String getSimplename() { + return simplename; + } + + public void setSimplename(String simplename) { + this.simplename = simplename; + } + + public String getTargetDeptidSync() { + return targetDeptidSync; + } + + public void setTargetDeptidSync(String targetDeptidSync) { + this.targetDeptidSync = targetDeptidSync; + } + + public String getLoginIp() { + return loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getLoginMac() { + return loginMac; + } + + public void setLoginMac(String loginMac) { + this.loginMac = loginMac; + } + + public Date getLastTime() { + return lastTime; + } + + public void setLastTime(Date lastTime) { + this.lastTime = lastTime; + } + + public BigDecimal getPositionLng() { + return positionLng; + } + + public void setPositionLng(BigDecimal positionLng) { + this.positionLng = positionLng; + } + + public BigDecimal getPositionLat() { + return positionLat; + } + + public void setPositionLat(BigDecimal positionLat) { + this.positionLat = positionLat; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", avatar=" + avatar + + ", account=" + account + + ", password=" + password + + ", salt=" + salt + + ", name=" + name + + ", birthday=" + birthday + + ", sex=" + sex + + ", email=" + email + + ", phone=" + phone + + ", roleid=" + roleid + + ", deptid=" + deptid + + ", status=" + status + + ", createtime=" + createtime + + ", version=" + version + + ", targetid=" + targetid + + ", targetname=" + targetname + + ", passwordSync=" + passwordSync + + ", isSync=" + isSync + + ", simplename=" + simplename + + ", targetDeptidSync=" + targetDeptidSync + + ", loginIp=" + loginIp + + ", loginMac=" + loginMac + + ", lastTime=" + lastTime + + ", positionLng=" + positionLng + + ", positionLat=" + positionLat + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java new file mode 100644 index 0000000..81516b7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -0,0 +1,110 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_batch") +public class Batch extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_number") + private Long batchNumber; + @TableField("batch_count") + private Long batchCount; + @TableField("contract_id") + private Long contractId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("task_id") + private Long taskId; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(Long batchNumber) { + this.batchNumber = batchNumber; + } + + public Long getBatchCount() { + return batchCount; + } + + public void setBatchCount(Long batchCount) { + this.batchCount = batchCount; + } + + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Batch{" + + "id=" + id + + ", batchNumber=" + batchNumber + + ", batchCount=" + batchCount + + ", contractId=" + contractId + + ", taskId=" + taskId + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java new file mode 100644 index 0000000..893a1ed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -0,0 +1,186 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_contract") +public class Contract extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("contract_number") + private String contractNumber; + @TableField("contract_name") + private String contractName; + @TableField("contract_content") + private String contractContent; + @TableField("contract_amount") + private String contractAmount; + @TableField("external_project_apply") + private String externalProjectApply; + @TableField("external_contract_apply") + private String externalContractApply; + @TableField("principal") + private String principal; + @TableField("external_check_apply") + private String externalCheckApply; + @TableField("contract_factory") + private String contractFactory; + @TableField("createtime") + private Date createtime; + @TableField(exist = false) + private String paymentStatus; + @TableField(exist = false) + private String netFlow; + @TableField("deptid") + private String deptid; + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getContractName() { + return contractName; + } + + public void setContractName(String contractName) { + this.contractName = contractName; + } + + public String getContractContent() { + return contractContent; + } + + public void setContractContent(String contractContent) { + this.contractContent = contractContent; + } + + public String getContractAmount() { + return contractAmount; + } + + public void setContractAmount(String contractAmount) { + this.contractAmount = contractAmount; + } + + public String getExternalProjectApply() { + return externalProjectApply; + } + + public void setExternalProjectApply(String externalProjectApply) { + this.externalProjectApply = externalProjectApply; + } + + public String getExternalContractApply() { + return externalContractApply; + } + + public void setExternalContractApply(String externalContractApply) { + this.externalContractApply = externalContractApply; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalCheckApply() { + return externalCheckApply; + } + + public void setExternalCheckApply(String externalCheckApply) { + this.externalCheckApply = externalCheckApply; + } + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public String getContractFactory() { + return contractFactory; + } + + public void setContractFactory(String contractFactory) { + this.contractFactory = contractFactory; + } + + public String getNetFlow() { + return netFlow; + } + + public void setNetFlow(String netFlow) { + this.netFlow = netFlow; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Contract{" + + "contractNumber=" + contractNumber + + ", contractName=" + contractName + + ", contractContent=" + contractContent + + ", contractAmount=" + contractAmount + + ", externalProjectApply=" + externalProjectApply + + ", externalContractApply=" + externalContractApply + + ", principal=" + principal + + ", id=" + id + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java new file mode 100644 index 0000000..8718d91 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -0,0 +1,150 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_device") +public class Device extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_id") + private Long batchId; + private String devcode; + @TableField("devtype_id") + private Long devtypeId; + @TableField("is_send") + private String isSend; + private String longitude; + private String latitude; + @TableField("install_height") + private String installHeight; + private String iccid; + private Long imei; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public Long getImei() { + return imei; + } + + public void setImei(Long imei) { + this.imei = imei; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Device{" + + "id=" + id + + ", batchId=" + batchId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", isSend=" + isSend + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", installHeight=" + installHeight + + ", iccid=" + iccid + + ", imei=" + imei + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java new file mode 100644 index 0000000..870c36f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_payments") +public class Payments extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @TableField("paytime") + private Date paytime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getPaytime() { + return paytime; + } + + public void setPaytime(Date paytime) { + this.paytime = paytime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Payments{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", paytime=" + paytime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java new file mode 100644 index 0000000..ae6b585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -0,0 +1,285 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_device_type") +public class ProductDeviceType extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 产品名称 + */ + @TableField("product_name") + private String productName; + /** + * 产品型号 + */ + @TableField("product_model") + private String productModel; + + /** + * 通讯版本号 + */ + @TableField("communication_version") + private String communicationVersion; + + /** + * 产品类型 + */ + @TableField("product_type") + private String productType; + + /** + * 整机版本号 + */ + @TableField("machine_version") + private String machineVersion; + /** + * 硬件版本号 + */ + @TableField("hardware_version") + private String hardwareVersion; + /** + * 软件版本号 + */ + @TableField("software_version") + private String softwareVersion; + /** + * 设计归档 + */ + @TableField("design_archive") + private String designArchive; + /** + * 批产归档 + */ + @TableField("batch_filing") + private String batchFiling; + /** + * 状态 + */ + @TableField("status") + private Integer status; + /** + * 性能指标 + */ + @TableField("kpi") + private String kpi; + /** + * 批产负责人 + */ + @TableField("principal") + private String principal; + /** + * 定额汇总表 + */ + @TableField("quota_summary") + private String quotaSummary; + + /** + * 权属部门 + */ + @TableField("deptid") + private String deptid; + + /** + * 备注 + */ + @TableField("descn") + private String descn; + + @TableField("createtime") + private Date createtime; + + + @TableField(exist = false) + private String statusFmt; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } + + public String getMachineVersion() { + return machineVersion; + } + + public void setMachineVersion(String machineVersion) { + this.machineVersion = machineVersion; + } + + public String getHardwareVersion() { + return hardwareVersion; + } + + public void setHardwareVersion(String hardwareVersion) { + this.hardwareVersion = hardwareVersion; + } + + public String getSoftwareVersion() { + return softwareVersion; + } + + public void setSoftwareVersion(String softwareVersion) { + this.softwareVersion = softwareVersion; + } + + public String getDesignArchive() { + return designArchive; + } + + public void setDesignArchive(String designArchive) { + this.designArchive = designArchive; + } + + public String getBatchFiling() { + return batchFiling; + } + + public void setBatchFiling(String batchFiling) { + this.batchFiling = batchFiling; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getKpi() { + return kpi; + } + + public void setKpi(String kpi) { + this.kpi = kpi; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public String getQuotaSummary() { + return quotaSummary; + } + + public void setQuotaSummary(String quotaSummary) { + this.quotaSummary = quotaSummary; + } + + public String getStatusFmt() { + return statusFmt; + } + + public void setStatusFmt(String statusFmt) { + this.statusFmt = statusFmt; + } + + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getProductType() { + return productType; + } + + public void setProductType(String productType) { + this.productType = productType; + } + + public String getCommunicationVersion() { + return communicationVersion; + } + + public void setCommunicationVersion(String communicationVersion) { + this.communicationVersion = communicationVersion; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductDeviceType{" + + "id=" + id + + ", productName=" + productName + + ", productModel=" + productModel + + ", machineVersion=" + machineVersion + + ", hardwareVersion=" + hardwareVersion + + ", softwareVersion=" + softwareVersion + + ", designArchive=" + designArchive + + ", batchFiling=" + batchFiling + + ", status=" + status + + ", kpi=" + kpi + + ", principal=" + principal + + ", quotaSummary=" + quotaSummary + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java new file mode 100644 index 0000000..b0fd924 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java @@ -0,0 +1,187 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_factory_information") +public class ProductFactoryInformation extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 厂家名称 + */ + @TableField("name") + private String name; + /** + * 厂家联系人 + */ + @TableField("person_name") + private String personName; + /** + * 地址 + */ + @TableField("address") + private String address; + /** + * 电话 + */ + @TableField("phone") + private String phone; + /** + * 开户行 + */ + @TableField("bank") + private String bank; + /** + * 税号 + */ + @TableField("tax_number") + private String taxNumber; + /** + * 在产设备 + */ + @TableField("producting_device") + private String productingDevice; + /** + * 设备报价表 + */ + @TableField("equipment_quotation") + private String equipmentQuotation; + + @TableField("createtime") + private Date createtime =new Date(); + + @TableField("deptid") + private String deptid; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPersonName() { + return personName; + } + + public void setPersonName(String personName) { + this.personName = personName; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getBank() { + return bank; + } + + public void setBank(String bank) { + this.bank = bank; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getProductingDevice() { + return productingDevice; + } + + public void setProductingDevice(String productingDevice) { + this.productingDevice = productingDevice; + } + + public String getEquipmentQuotation() { + return equipmentQuotation; + } + + public void setEquipmentQuotation(String equipmentQuotation) { + this.equipmentQuotation = equipmentQuotation; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductFactoryInformation{" + + "id=" + id + + ", name=" + name + + ", personName=" + personName + + ", address=" + address + + ", phone=" + phone + + ", bank=" + bank + + ", taxNumber=" + taxNumber + + ", productingDevice=" + productingDevice + + ", equipmentQuotation=" + equipmentQuotation + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java new file mode 100644 index 0000000..00cbc92 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -0,0 +1,99 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@TableName("product_project") +public class Project extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_name") + private String projectName; + @TableField("project_simple_name") + private String projectSimpleName; + @TableField("project_manager") + private String projectManager; + private String descn; + @TableField("createtime") + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getProjectManager() { + return projectManager; + } + + public void setProjectManager(String projectManager) { + this.projectManager = projectManager; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Project{" + + "id=" + id + + ", projectName=" + projectName + + ", projectSimpleName=" + projectSimpleName + + ", projectManager=" + projectManager + + ", descn=" + descn + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java new file mode 100644 index 0000000..658c2e1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java @@ -0,0 +1,126 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_reimburse") +public class Reimburse extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mi:ss") + @TableField("reimburse_time") + private Date reimburseTime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getReimburseTime() { + return reimburseTime; + } + + public void setReimburseTime(Date reimburseTime) { + this.reimburseTime = reimburseTime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Reimburse{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", reimburseTime=" + reimburseTime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java new file mode 100644 index 0000000..987efa7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java @@ -0,0 +1,141 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_task") +public class Task extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_id") + private Long projectId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("devmode_id") + private String devmodeId; + private Long devcount; + @TableField("delivery_time") + private Date deliveryTime; + private String demand; + private Date createtime; + @TableField(exist = false) + private String deliveryTimeFmt; + + @TableField(exist = false) + private Long taskId; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getProjectId() { + return projectId; + } + + public void setProjectId(Long projectId) { + this.projectId = projectId; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDevmodeId() { + return devmodeId; + } + + public void setDevmodeId(String devmodeId) { + this.devmodeId = devmodeId; + } + + public Long getDevcount() { + return devcount; + } + + public void setDevcount(Long devcount) { + this.devcount = devcount; + } + + public Date getDeliveryTime() { + return deliveryTime; + } + + public void setDeliveryTime(Date deliveryTime) { + this.deliveryTime = deliveryTime; + } + + public String getDemand() { + return demand; + } + + public void setDemand(String demand) { + this.demand = demand; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeliveryTimeFmt() { + return deliveryTimeFmt; + } + + public void setDeliveryTimeFmt(String deliveryTimeFmt) { + this.deliveryTimeFmt = deliveryTimeFmt; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Task{" + + "id=" + id + + ", projectId=" + projectId + + ", devtypeId=" + devtypeId + + ", devmodeId=" + devmodeId + + ", devcount=" + devcount + + ", deliveryTime=" + deliveryTime + + ", demand=" + demand + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java new file mode 100644 index 0000000..7785de5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface IAccountService extends IService { + + /** + * 根据用户名查用户 + * @param userName + * @return + */ + Account findUserByName(String userName); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java new file mode 100644 index 0000000..d8b5e87 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IContractService extends IService { + List selectPageList(Page page, String keyword1, String keyword2, String keyword3); + List reportExport(String keyword1, String keyword2, String keyword3); + void importContract( List contracts); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java new file mode 100644 index 0000000..0f2d6e0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IPaymentsService extends IService { + + boolean validate(Long proId,String money,String reorder); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java new file mode 100644 index 0000000..71490df --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -0,0 +1,62 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductDeviceTypeService extends IService { + + /** + * 批量导入设备类型列表 + * @param results + */ + void importDeviceType(List results); + + /** + * 导出列表 + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List reportExport(String keyword1,String keyword2,String keyword3); + + + /** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectPageDataScope(DataScope dataScope, Page page, + String keyword1, String keyword2, String keyword3); + + /** + * 获取在产的设备类型 + * @return + */ + List selectDeviceTypeList(); + + /** + * 根据产品型号获取产品 + * @param deviceModel + * @return + */ + ProductDeviceType selectDeviceTypeByModel(String deviceModel); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java new file mode 100644 index 0000000..455f60a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductFactoryInformationService extends IService { + /** + * 根据条件导出列表 + * @param keyword1 + * @param keyword2 + * @return + */ + List reportExport(String keyword1, String keyword2); + + + /** + * 导入 + * @param results + */ + void importDeviceType(List results); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java new file mode 100644 index 0000000..3c27bd1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface IProjectService extends IService { + +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java new file mode 100644 index 0000000..4670df3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 集中器相关日志 + */ +public class ProjectDict extends AbstractDictMap { + public static final String PROJECT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + @Override + public void init() { + put("projectName","项目名称"); + put("projectSimpleName","项目简称"); + put("projectManager","项目经理"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java new file mode 100644 index 0000000..7981a17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dto; + +/** + * 用于设备类型展示 + * @author test203 + * @date 2020-04-03 + */ +public class DeviceTypeDto { + private Long id; + private String productName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java new file mode 100644 index 0000000..f254585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java @@ -0,0 +1,361 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.math.BigDecimal; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; + +/** + *

+ * 管理员表 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@TableName("sys_user") +public class Account extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + /** + * 头像 + */ + private String avatar; + /** + * 账号 + */ + private String account; + /** + * 密码 + */ + private String password; + /** + * md5密码盐 + */ + private String salt; + /** + * 名字 + */ + private String name; + /** + * 生日 + */ + private Date birthday; + /** + * 性别(1:男 2:女) + */ + private String sex; + /** + * 电子邮件 + */ + private String email; + /** + * 电话 + */ + private String phone; + /** + * 角色id + */ + private String roleid; + /** + * 部门id + */ + private Long deptid; + /** + * 状态(1:启用 2:冻结 3:删除) + */ + private String status; + /** + * 创建时间 + */ + private Date createtime; + /** + * 保留字段 + */ + private Integer version; + private String targetid; + private String targetname; + @TableField("password_sync") + private String passwordSync; + @TableField("IS_SYNC") + private Integer isSync; + private String simplename; + /** + * 同步组织ID + */ + @TableField("TARGET_DEPTID_SYNC") + private String targetDeptidSync; + @TableField("LOGIN_IP") + private String loginIp; + @TableField("LOGIN_MAC") + private String loginMac; + /** + * 最后在线时间 + */ + @TableField("LAST_TIME") + private Date lastTime; + /** + * 经度 + */ + @TableField("POSITION_LNG") + private BigDecimal positionLng; + /** + * 纬度 + */ + @TableField("POSITION_LAT") + private BigDecimal positionLat; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt() { + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getRoleid() { + return roleid; + } + + public void setRoleid(String roleid) { + this.roleid = roleid; + } + + public Long getDeptid() { + return deptid; + } + + public void setDeptid(Long deptid) { + this.deptid = deptid; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + public String getTargetid() { + return targetid; + } + + public void setTargetid(String targetid) { + this.targetid = targetid; + } + + public String getTargetname() { + return targetname; + } + + public void setTargetname(String targetname) { + this.targetname = targetname; + } + + public String getPasswordSync() { + return passwordSync; + } + + public void setPasswordSync(String passwordSync) { + this.passwordSync = passwordSync; + } + + public Integer getIsSync() { + return isSync; + } + + public void setIsSync(Integer isSync) { + this.isSync = isSync; + } + + public String getSimplename() { + return simplename; + } + + public void setSimplename(String simplename) { + this.simplename = simplename; + } + + public String getTargetDeptidSync() { + return targetDeptidSync; + } + + public void setTargetDeptidSync(String targetDeptidSync) { + this.targetDeptidSync = targetDeptidSync; + } + + public String getLoginIp() { + return loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getLoginMac() { + return loginMac; + } + + public void setLoginMac(String loginMac) { + this.loginMac = loginMac; + } + + public Date getLastTime() { + return lastTime; + } + + public void setLastTime(Date lastTime) { + this.lastTime = lastTime; + } + + public BigDecimal getPositionLng() { + return positionLng; + } + + public void setPositionLng(BigDecimal positionLng) { + this.positionLng = positionLng; + } + + public BigDecimal getPositionLat() { + return positionLat; + } + + public void setPositionLat(BigDecimal positionLat) { + this.positionLat = positionLat; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", avatar=" + avatar + + ", account=" + account + + ", password=" + password + + ", salt=" + salt + + ", name=" + name + + ", birthday=" + birthday + + ", sex=" + sex + + ", email=" + email + + ", phone=" + phone + + ", roleid=" + roleid + + ", deptid=" + deptid + + ", status=" + status + + ", createtime=" + createtime + + ", version=" + version + + ", targetid=" + targetid + + ", targetname=" + targetname + + ", passwordSync=" + passwordSync + + ", isSync=" + isSync + + ", simplename=" + simplename + + ", targetDeptidSync=" + targetDeptidSync + + ", loginIp=" + loginIp + + ", loginMac=" + loginMac + + ", lastTime=" + lastTime + + ", positionLng=" + positionLng + + ", positionLat=" + positionLat + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java new file mode 100644 index 0000000..81516b7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -0,0 +1,110 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_batch") +public class Batch extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_number") + private Long batchNumber; + @TableField("batch_count") + private Long batchCount; + @TableField("contract_id") + private Long contractId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("task_id") + private Long taskId; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(Long batchNumber) { + this.batchNumber = batchNumber; + } + + public Long getBatchCount() { + return batchCount; + } + + public void setBatchCount(Long batchCount) { + this.batchCount = batchCount; + } + + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Batch{" + + "id=" + id + + ", batchNumber=" + batchNumber + + ", batchCount=" + batchCount + + ", contractId=" + contractId + + ", taskId=" + taskId + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java new file mode 100644 index 0000000..893a1ed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -0,0 +1,186 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_contract") +public class Contract extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("contract_number") + private String contractNumber; + @TableField("contract_name") + private String contractName; + @TableField("contract_content") + private String contractContent; + @TableField("contract_amount") + private String contractAmount; + @TableField("external_project_apply") + private String externalProjectApply; + @TableField("external_contract_apply") + private String externalContractApply; + @TableField("principal") + private String principal; + @TableField("external_check_apply") + private String externalCheckApply; + @TableField("contract_factory") + private String contractFactory; + @TableField("createtime") + private Date createtime; + @TableField(exist = false) + private String paymentStatus; + @TableField(exist = false) + private String netFlow; + @TableField("deptid") + private String deptid; + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getContractName() { + return contractName; + } + + public void setContractName(String contractName) { + this.contractName = contractName; + } + + public String getContractContent() { + return contractContent; + } + + public void setContractContent(String contractContent) { + this.contractContent = contractContent; + } + + public String getContractAmount() { + return contractAmount; + } + + public void setContractAmount(String contractAmount) { + this.contractAmount = contractAmount; + } + + public String getExternalProjectApply() { + return externalProjectApply; + } + + public void setExternalProjectApply(String externalProjectApply) { + this.externalProjectApply = externalProjectApply; + } + + public String getExternalContractApply() { + return externalContractApply; + } + + public void setExternalContractApply(String externalContractApply) { + this.externalContractApply = externalContractApply; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalCheckApply() { + return externalCheckApply; + } + + public void setExternalCheckApply(String externalCheckApply) { + this.externalCheckApply = externalCheckApply; + } + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public String getContractFactory() { + return contractFactory; + } + + public void setContractFactory(String contractFactory) { + this.contractFactory = contractFactory; + } + + public String getNetFlow() { + return netFlow; + } + + public void setNetFlow(String netFlow) { + this.netFlow = netFlow; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Contract{" + + "contractNumber=" + contractNumber + + ", contractName=" + contractName + + ", contractContent=" + contractContent + + ", contractAmount=" + contractAmount + + ", externalProjectApply=" + externalProjectApply + + ", externalContractApply=" + externalContractApply + + ", principal=" + principal + + ", id=" + id + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java new file mode 100644 index 0000000..8718d91 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -0,0 +1,150 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_device") +public class Device extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_id") + private Long batchId; + private String devcode; + @TableField("devtype_id") + private Long devtypeId; + @TableField("is_send") + private String isSend; + private String longitude; + private String latitude; + @TableField("install_height") + private String installHeight; + private String iccid; + private Long imei; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public Long getImei() { + return imei; + } + + public void setImei(Long imei) { + this.imei = imei; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Device{" + + "id=" + id + + ", batchId=" + batchId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", isSend=" + isSend + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", installHeight=" + installHeight + + ", iccid=" + iccid + + ", imei=" + imei + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java new file mode 100644 index 0000000..870c36f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_payments") +public class Payments extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @TableField("paytime") + private Date paytime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getPaytime() { + return paytime; + } + + public void setPaytime(Date paytime) { + this.paytime = paytime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Payments{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", paytime=" + paytime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java new file mode 100644 index 0000000..ae6b585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -0,0 +1,285 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_device_type") +public class ProductDeviceType extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 产品名称 + */ + @TableField("product_name") + private String productName; + /** + * 产品型号 + */ + @TableField("product_model") + private String productModel; + + /** + * 通讯版本号 + */ + @TableField("communication_version") + private String communicationVersion; + + /** + * 产品类型 + */ + @TableField("product_type") + private String productType; + + /** + * 整机版本号 + */ + @TableField("machine_version") + private String machineVersion; + /** + * 硬件版本号 + */ + @TableField("hardware_version") + private String hardwareVersion; + /** + * 软件版本号 + */ + @TableField("software_version") + private String softwareVersion; + /** + * 设计归档 + */ + @TableField("design_archive") + private String designArchive; + /** + * 批产归档 + */ + @TableField("batch_filing") + private String batchFiling; + /** + * 状态 + */ + @TableField("status") + private Integer status; + /** + * 性能指标 + */ + @TableField("kpi") + private String kpi; + /** + * 批产负责人 + */ + @TableField("principal") + private String principal; + /** + * 定额汇总表 + */ + @TableField("quota_summary") + private String quotaSummary; + + /** + * 权属部门 + */ + @TableField("deptid") + private String deptid; + + /** + * 备注 + */ + @TableField("descn") + private String descn; + + @TableField("createtime") + private Date createtime; + + + @TableField(exist = false) + private String statusFmt; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } + + public String getMachineVersion() { + return machineVersion; + } + + public void setMachineVersion(String machineVersion) { + this.machineVersion = machineVersion; + } + + public String getHardwareVersion() { + return hardwareVersion; + } + + public void setHardwareVersion(String hardwareVersion) { + this.hardwareVersion = hardwareVersion; + } + + public String getSoftwareVersion() { + return softwareVersion; + } + + public void setSoftwareVersion(String softwareVersion) { + this.softwareVersion = softwareVersion; + } + + public String getDesignArchive() { + return designArchive; + } + + public void setDesignArchive(String designArchive) { + this.designArchive = designArchive; + } + + public String getBatchFiling() { + return batchFiling; + } + + public void setBatchFiling(String batchFiling) { + this.batchFiling = batchFiling; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getKpi() { + return kpi; + } + + public void setKpi(String kpi) { + this.kpi = kpi; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public String getQuotaSummary() { + return quotaSummary; + } + + public void setQuotaSummary(String quotaSummary) { + this.quotaSummary = quotaSummary; + } + + public String getStatusFmt() { + return statusFmt; + } + + public void setStatusFmt(String statusFmt) { + this.statusFmt = statusFmt; + } + + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getProductType() { + return productType; + } + + public void setProductType(String productType) { + this.productType = productType; + } + + public String getCommunicationVersion() { + return communicationVersion; + } + + public void setCommunicationVersion(String communicationVersion) { + this.communicationVersion = communicationVersion; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductDeviceType{" + + "id=" + id + + ", productName=" + productName + + ", productModel=" + productModel + + ", machineVersion=" + machineVersion + + ", hardwareVersion=" + hardwareVersion + + ", softwareVersion=" + softwareVersion + + ", designArchive=" + designArchive + + ", batchFiling=" + batchFiling + + ", status=" + status + + ", kpi=" + kpi + + ", principal=" + principal + + ", quotaSummary=" + quotaSummary + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java new file mode 100644 index 0000000..b0fd924 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java @@ -0,0 +1,187 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_factory_information") +public class ProductFactoryInformation extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 厂家名称 + */ + @TableField("name") + private String name; + /** + * 厂家联系人 + */ + @TableField("person_name") + private String personName; + /** + * 地址 + */ + @TableField("address") + private String address; + /** + * 电话 + */ + @TableField("phone") + private String phone; + /** + * 开户行 + */ + @TableField("bank") + private String bank; + /** + * 税号 + */ + @TableField("tax_number") + private String taxNumber; + /** + * 在产设备 + */ + @TableField("producting_device") + private String productingDevice; + /** + * 设备报价表 + */ + @TableField("equipment_quotation") + private String equipmentQuotation; + + @TableField("createtime") + private Date createtime =new Date(); + + @TableField("deptid") + private String deptid; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPersonName() { + return personName; + } + + public void setPersonName(String personName) { + this.personName = personName; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getBank() { + return bank; + } + + public void setBank(String bank) { + this.bank = bank; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getProductingDevice() { + return productingDevice; + } + + public void setProductingDevice(String productingDevice) { + this.productingDevice = productingDevice; + } + + public String getEquipmentQuotation() { + return equipmentQuotation; + } + + public void setEquipmentQuotation(String equipmentQuotation) { + this.equipmentQuotation = equipmentQuotation; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductFactoryInformation{" + + "id=" + id + + ", name=" + name + + ", personName=" + personName + + ", address=" + address + + ", phone=" + phone + + ", bank=" + bank + + ", taxNumber=" + taxNumber + + ", productingDevice=" + productingDevice + + ", equipmentQuotation=" + equipmentQuotation + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java new file mode 100644 index 0000000..00cbc92 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -0,0 +1,99 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@TableName("product_project") +public class Project extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_name") + private String projectName; + @TableField("project_simple_name") + private String projectSimpleName; + @TableField("project_manager") + private String projectManager; + private String descn; + @TableField("createtime") + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getProjectManager() { + return projectManager; + } + + public void setProjectManager(String projectManager) { + this.projectManager = projectManager; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Project{" + + "id=" + id + + ", projectName=" + projectName + + ", projectSimpleName=" + projectSimpleName + + ", projectManager=" + projectManager + + ", descn=" + descn + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java new file mode 100644 index 0000000..658c2e1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java @@ -0,0 +1,126 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_reimburse") +public class Reimburse extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mi:ss") + @TableField("reimburse_time") + private Date reimburseTime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getReimburseTime() { + return reimburseTime; + } + + public void setReimburseTime(Date reimburseTime) { + this.reimburseTime = reimburseTime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Reimburse{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", reimburseTime=" + reimburseTime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java new file mode 100644 index 0000000..987efa7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java @@ -0,0 +1,141 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_task") +public class Task extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_id") + private Long projectId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("devmode_id") + private String devmodeId; + private Long devcount; + @TableField("delivery_time") + private Date deliveryTime; + private String demand; + private Date createtime; + @TableField(exist = false) + private String deliveryTimeFmt; + + @TableField(exist = false) + private Long taskId; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getProjectId() { + return projectId; + } + + public void setProjectId(Long projectId) { + this.projectId = projectId; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDevmodeId() { + return devmodeId; + } + + public void setDevmodeId(String devmodeId) { + this.devmodeId = devmodeId; + } + + public Long getDevcount() { + return devcount; + } + + public void setDevcount(Long devcount) { + this.devcount = devcount; + } + + public Date getDeliveryTime() { + return deliveryTime; + } + + public void setDeliveryTime(Date deliveryTime) { + this.deliveryTime = deliveryTime; + } + + public String getDemand() { + return demand; + } + + public void setDemand(String demand) { + this.demand = demand; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeliveryTimeFmt() { + return deliveryTimeFmt; + } + + public void setDeliveryTimeFmt(String deliveryTimeFmt) { + this.deliveryTimeFmt = deliveryTimeFmt; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Task{" + + "id=" + id + + ", projectId=" + projectId + + ", devtypeId=" + devtypeId + + ", devmodeId=" + devmodeId + + ", devcount=" + devcount + + ", deliveryTime=" + deliveryTime + + ", demand=" + demand + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java new file mode 100644 index 0000000..7785de5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface IAccountService extends IService { + + /** + * 根据用户名查用户 + * @param userName + * @return + */ + Account findUserByName(String userName); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java new file mode 100644 index 0000000..d8b5e87 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IContractService extends IService { + List selectPageList(Page page, String keyword1, String keyword2, String keyword3); + List reportExport(String keyword1, String keyword2, String keyword3); + void importContract( List contracts); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java new file mode 100644 index 0000000..0f2d6e0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IPaymentsService extends IService { + + boolean validate(Long proId,String money,String reorder); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java new file mode 100644 index 0000000..71490df --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -0,0 +1,62 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductDeviceTypeService extends IService { + + /** + * 批量导入设备类型列表 + * @param results + */ + void importDeviceType(List results); + + /** + * 导出列表 + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List reportExport(String keyword1,String keyword2,String keyword3); + + + /** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectPageDataScope(DataScope dataScope, Page page, + String keyword1, String keyword2, String keyword3); + + /** + * 获取在产的设备类型 + * @return + */ + List selectDeviceTypeList(); + + /** + * 根据产品型号获取产品 + * @param deviceModel + * @return + */ + ProductDeviceType selectDeviceTypeByModel(String deviceModel); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java new file mode 100644 index 0000000..455f60a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductFactoryInformationService extends IService { + /** + * 根据条件导出列表 + * @param keyword1 + * @param keyword2 + * @return + */ + List reportExport(String keyword1, String keyword2); + + + /** + * 导入 + * @param results + */ + void importDeviceType(List results); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java new file mode 100644 index 0000000..3c27bd1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface IProjectService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java new file mode 100644 index 0000000..ee0a55c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IReimburseService extends IService { + boolean validate(Long proId,String money,String reorder); +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java new file mode 100644 index 0000000..4670df3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 集中器相关日志 + */ +public class ProjectDict extends AbstractDictMap { + public static final String PROJECT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + @Override + public void init() { + put("projectName","项目名称"); + put("projectSimpleName","项目简称"); + put("projectManager","项目经理"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java new file mode 100644 index 0000000..7981a17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dto; + +/** + * 用于设备类型展示 + * @author test203 + * @date 2020-04-03 + */ +public class DeviceTypeDto { + private Long id; + private String productName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java new file mode 100644 index 0000000..f254585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java @@ -0,0 +1,361 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.math.BigDecimal; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; + +/** + *

+ * 管理员表 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@TableName("sys_user") +public class Account extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + /** + * 头像 + */ + private String avatar; + /** + * 账号 + */ + private String account; + /** + * 密码 + */ + private String password; + /** + * md5密码盐 + */ + private String salt; + /** + * 名字 + */ + private String name; + /** + * 生日 + */ + private Date birthday; + /** + * 性别(1:男 2:女) + */ + private String sex; + /** + * 电子邮件 + */ + private String email; + /** + * 电话 + */ + private String phone; + /** + * 角色id + */ + private String roleid; + /** + * 部门id + */ + private Long deptid; + /** + * 状态(1:启用 2:冻结 3:删除) + */ + private String status; + /** + * 创建时间 + */ + private Date createtime; + /** + * 保留字段 + */ + private Integer version; + private String targetid; + private String targetname; + @TableField("password_sync") + private String passwordSync; + @TableField("IS_SYNC") + private Integer isSync; + private String simplename; + /** + * 同步组织ID + */ + @TableField("TARGET_DEPTID_SYNC") + private String targetDeptidSync; + @TableField("LOGIN_IP") + private String loginIp; + @TableField("LOGIN_MAC") + private String loginMac; + /** + * 最后在线时间 + */ + @TableField("LAST_TIME") + private Date lastTime; + /** + * 经度 + */ + @TableField("POSITION_LNG") + private BigDecimal positionLng; + /** + * 纬度 + */ + @TableField("POSITION_LAT") + private BigDecimal positionLat; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt() { + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getRoleid() { + return roleid; + } + + public void setRoleid(String roleid) { + this.roleid = roleid; + } + + public Long getDeptid() { + return deptid; + } + + public void setDeptid(Long deptid) { + this.deptid = deptid; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + public String getTargetid() { + return targetid; + } + + public void setTargetid(String targetid) { + this.targetid = targetid; + } + + public String getTargetname() { + return targetname; + } + + public void setTargetname(String targetname) { + this.targetname = targetname; + } + + public String getPasswordSync() { + return passwordSync; + } + + public void setPasswordSync(String passwordSync) { + this.passwordSync = passwordSync; + } + + public Integer getIsSync() { + return isSync; + } + + public void setIsSync(Integer isSync) { + this.isSync = isSync; + } + + public String getSimplename() { + return simplename; + } + + public void setSimplename(String simplename) { + this.simplename = simplename; + } + + public String getTargetDeptidSync() { + return targetDeptidSync; + } + + public void setTargetDeptidSync(String targetDeptidSync) { + this.targetDeptidSync = targetDeptidSync; + } + + public String getLoginIp() { + return loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getLoginMac() { + return loginMac; + } + + public void setLoginMac(String loginMac) { + this.loginMac = loginMac; + } + + public Date getLastTime() { + return lastTime; + } + + public void setLastTime(Date lastTime) { + this.lastTime = lastTime; + } + + public BigDecimal getPositionLng() { + return positionLng; + } + + public void setPositionLng(BigDecimal positionLng) { + this.positionLng = positionLng; + } + + public BigDecimal getPositionLat() { + return positionLat; + } + + public void setPositionLat(BigDecimal positionLat) { + this.positionLat = positionLat; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", avatar=" + avatar + + ", account=" + account + + ", password=" + password + + ", salt=" + salt + + ", name=" + name + + ", birthday=" + birthday + + ", sex=" + sex + + ", email=" + email + + ", phone=" + phone + + ", roleid=" + roleid + + ", deptid=" + deptid + + ", status=" + status + + ", createtime=" + createtime + + ", version=" + version + + ", targetid=" + targetid + + ", targetname=" + targetname + + ", passwordSync=" + passwordSync + + ", isSync=" + isSync + + ", simplename=" + simplename + + ", targetDeptidSync=" + targetDeptidSync + + ", loginIp=" + loginIp + + ", loginMac=" + loginMac + + ", lastTime=" + lastTime + + ", positionLng=" + positionLng + + ", positionLat=" + positionLat + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java new file mode 100644 index 0000000..81516b7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -0,0 +1,110 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_batch") +public class Batch extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_number") + private Long batchNumber; + @TableField("batch_count") + private Long batchCount; + @TableField("contract_id") + private Long contractId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("task_id") + private Long taskId; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(Long batchNumber) { + this.batchNumber = batchNumber; + } + + public Long getBatchCount() { + return batchCount; + } + + public void setBatchCount(Long batchCount) { + this.batchCount = batchCount; + } + + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Batch{" + + "id=" + id + + ", batchNumber=" + batchNumber + + ", batchCount=" + batchCount + + ", contractId=" + contractId + + ", taskId=" + taskId + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java new file mode 100644 index 0000000..893a1ed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -0,0 +1,186 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_contract") +public class Contract extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("contract_number") + private String contractNumber; + @TableField("contract_name") + private String contractName; + @TableField("contract_content") + private String contractContent; + @TableField("contract_amount") + private String contractAmount; + @TableField("external_project_apply") + private String externalProjectApply; + @TableField("external_contract_apply") + private String externalContractApply; + @TableField("principal") + private String principal; + @TableField("external_check_apply") + private String externalCheckApply; + @TableField("contract_factory") + private String contractFactory; + @TableField("createtime") + private Date createtime; + @TableField(exist = false) + private String paymentStatus; + @TableField(exist = false) + private String netFlow; + @TableField("deptid") + private String deptid; + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getContractName() { + return contractName; + } + + public void setContractName(String contractName) { + this.contractName = contractName; + } + + public String getContractContent() { + return contractContent; + } + + public void setContractContent(String contractContent) { + this.contractContent = contractContent; + } + + public String getContractAmount() { + return contractAmount; + } + + public void setContractAmount(String contractAmount) { + this.contractAmount = contractAmount; + } + + public String getExternalProjectApply() { + return externalProjectApply; + } + + public void setExternalProjectApply(String externalProjectApply) { + this.externalProjectApply = externalProjectApply; + } + + public String getExternalContractApply() { + return externalContractApply; + } + + public void setExternalContractApply(String externalContractApply) { + this.externalContractApply = externalContractApply; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalCheckApply() { + return externalCheckApply; + } + + public void setExternalCheckApply(String externalCheckApply) { + this.externalCheckApply = externalCheckApply; + } + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public String getContractFactory() { + return contractFactory; + } + + public void setContractFactory(String contractFactory) { + this.contractFactory = contractFactory; + } + + public String getNetFlow() { + return netFlow; + } + + public void setNetFlow(String netFlow) { + this.netFlow = netFlow; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Contract{" + + "contractNumber=" + contractNumber + + ", contractName=" + contractName + + ", contractContent=" + contractContent + + ", contractAmount=" + contractAmount + + ", externalProjectApply=" + externalProjectApply + + ", externalContractApply=" + externalContractApply + + ", principal=" + principal + + ", id=" + id + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java new file mode 100644 index 0000000..8718d91 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -0,0 +1,150 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_device") +public class Device extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_id") + private Long batchId; + private String devcode; + @TableField("devtype_id") + private Long devtypeId; + @TableField("is_send") + private String isSend; + private String longitude; + private String latitude; + @TableField("install_height") + private String installHeight; + private String iccid; + private Long imei; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public Long getImei() { + return imei; + } + + public void setImei(Long imei) { + this.imei = imei; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Device{" + + "id=" + id + + ", batchId=" + batchId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", isSend=" + isSend + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", installHeight=" + installHeight + + ", iccid=" + iccid + + ", imei=" + imei + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java new file mode 100644 index 0000000..870c36f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_payments") +public class Payments extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @TableField("paytime") + private Date paytime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getPaytime() { + return paytime; + } + + public void setPaytime(Date paytime) { + this.paytime = paytime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Payments{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", paytime=" + paytime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java new file mode 100644 index 0000000..ae6b585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -0,0 +1,285 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_device_type") +public class ProductDeviceType extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 产品名称 + */ + @TableField("product_name") + private String productName; + /** + * 产品型号 + */ + @TableField("product_model") + private String productModel; + + /** + * 通讯版本号 + */ + @TableField("communication_version") + private String communicationVersion; + + /** + * 产品类型 + */ + @TableField("product_type") + private String productType; + + /** + * 整机版本号 + */ + @TableField("machine_version") + private String machineVersion; + /** + * 硬件版本号 + */ + @TableField("hardware_version") + private String hardwareVersion; + /** + * 软件版本号 + */ + @TableField("software_version") + private String softwareVersion; + /** + * 设计归档 + */ + @TableField("design_archive") + private String designArchive; + /** + * 批产归档 + */ + @TableField("batch_filing") + private String batchFiling; + /** + * 状态 + */ + @TableField("status") + private Integer status; + /** + * 性能指标 + */ + @TableField("kpi") + private String kpi; + /** + * 批产负责人 + */ + @TableField("principal") + private String principal; + /** + * 定额汇总表 + */ + @TableField("quota_summary") + private String quotaSummary; + + /** + * 权属部门 + */ + @TableField("deptid") + private String deptid; + + /** + * 备注 + */ + @TableField("descn") + private String descn; + + @TableField("createtime") + private Date createtime; + + + @TableField(exist = false) + private String statusFmt; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } + + public String getMachineVersion() { + return machineVersion; + } + + public void setMachineVersion(String machineVersion) { + this.machineVersion = machineVersion; + } + + public String getHardwareVersion() { + return hardwareVersion; + } + + public void setHardwareVersion(String hardwareVersion) { + this.hardwareVersion = hardwareVersion; + } + + public String getSoftwareVersion() { + return softwareVersion; + } + + public void setSoftwareVersion(String softwareVersion) { + this.softwareVersion = softwareVersion; + } + + public String getDesignArchive() { + return designArchive; + } + + public void setDesignArchive(String designArchive) { + this.designArchive = designArchive; + } + + public String getBatchFiling() { + return batchFiling; + } + + public void setBatchFiling(String batchFiling) { + this.batchFiling = batchFiling; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getKpi() { + return kpi; + } + + public void setKpi(String kpi) { + this.kpi = kpi; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public String getQuotaSummary() { + return quotaSummary; + } + + public void setQuotaSummary(String quotaSummary) { + this.quotaSummary = quotaSummary; + } + + public String getStatusFmt() { + return statusFmt; + } + + public void setStatusFmt(String statusFmt) { + this.statusFmt = statusFmt; + } + + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getProductType() { + return productType; + } + + public void setProductType(String productType) { + this.productType = productType; + } + + public String getCommunicationVersion() { + return communicationVersion; + } + + public void setCommunicationVersion(String communicationVersion) { + this.communicationVersion = communicationVersion; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductDeviceType{" + + "id=" + id + + ", productName=" + productName + + ", productModel=" + productModel + + ", machineVersion=" + machineVersion + + ", hardwareVersion=" + hardwareVersion + + ", softwareVersion=" + softwareVersion + + ", designArchive=" + designArchive + + ", batchFiling=" + batchFiling + + ", status=" + status + + ", kpi=" + kpi + + ", principal=" + principal + + ", quotaSummary=" + quotaSummary + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java new file mode 100644 index 0000000..b0fd924 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java @@ -0,0 +1,187 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_factory_information") +public class ProductFactoryInformation extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 厂家名称 + */ + @TableField("name") + private String name; + /** + * 厂家联系人 + */ + @TableField("person_name") + private String personName; + /** + * 地址 + */ + @TableField("address") + private String address; + /** + * 电话 + */ + @TableField("phone") + private String phone; + /** + * 开户行 + */ + @TableField("bank") + private String bank; + /** + * 税号 + */ + @TableField("tax_number") + private String taxNumber; + /** + * 在产设备 + */ + @TableField("producting_device") + private String productingDevice; + /** + * 设备报价表 + */ + @TableField("equipment_quotation") + private String equipmentQuotation; + + @TableField("createtime") + private Date createtime =new Date(); + + @TableField("deptid") + private String deptid; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPersonName() { + return personName; + } + + public void setPersonName(String personName) { + this.personName = personName; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getBank() { + return bank; + } + + public void setBank(String bank) { + this.bank = bank; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getProductingDevice() { + return productingDevice; + } + + public void setProductingDevice(String productingDevice) { + this.productingDevice = productingDevice; + } + + public String getEquipmentQuotation() { + return equipmentQuotation; + } + + public void setEquipmentQuotation(String equipmentQuotation) { + this.equipmentQuotation = equipmentQuotation; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductFactoryInformation{" + + "id=" + id + + ", name=" + name + + ", personName=" + personName + + ", address=" + address + + ", phone=" + phone + + ", bank=" + bank + + ", taxNumber=" + taxNumber + + ", productingDevice=" + productingDevice + + ", equipmentQuotation=" + equipmentQuotation + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java new file mode 100644 index 0000000..00cbc92 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -0,0 +1,99 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@TableName("product_project") +public class Project extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_name") + private String projectName; + @TableField("project_simple_name") + private String projectSimpleName; + @TableField("project_manager") + private String projectManager; + private String descn; + @TableField("createtime") + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getProjectManager() { + return projectManager; + } + + public void setProjectManager(String projectManager) { + this.projectManager = projectManager; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Project{" + + "id=" + id + + ", projectName=" + projectName + + ", projectSimpleName=" + projectSimpleName + + ", projectManager=" + projectManager + + ", descn=" + descn + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java new file mode 100644 index 0000000..658c2e1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java @@ -0,0 +1,126 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_reimburse") +public class Reimburse extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mi:ss") + @TableField("reimburse_time") + private Date reimburseTime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getReimburseTime() { + return reimburseTime; + } + + public void setReimburseTime(Date reimburseTime) { + this.reimburseTime = reimburseTime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Reimburse{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", reimburseTime=" + reimburseTime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java new file mode 100644 index 0000000..987efa7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java @@ -0,0 +1,141 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_task") +public class Task extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_id") + private Long projectId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("devmode_id") + private String devmodeId; + private Long devcount; + @TableField("delivery_time") + private Date deliveryTime; + private String demand; + private Date createtime; + @TableField(exist = false) + private String deliveryTimeFmt; + + @TableField(exist = false) + private Long taskId; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getProjectId() { + return projectId; + } + + public void setProjectId(Long projectId) { + this.projectId = projectId; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDevmodeId() { + return devmodeId; + } + + public void setDevmodeId(String devmodeId) { + this.devmodeId = devmodeId; + } + + public Long getDevcount() { + return devcount; + } + + public void setDevcount(Long devcount) { + this.devcount = devcount; + } + + public Date getDeliveryTime() { + return deliveryTime; + } + + public void setDeliveryTime(Date deliveryTime) { + this.deliveryTime = deliveryTime; + } + + public String getDemand() { + return demand; + } + + public void setDemand(String demand) { + this.demand = demand; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeliveryTimeFmt() { + return deliveryTimeFmt; + } + + public void setDeliveryTimeFmt(String deliveryTimeFmt) { + this.deliveryTimeFmt = deliveryTimeFmt; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Task{" + + "id=" + id + + ", projectId=" + projectId + + ", devtypeId=" + devtypeId + + ", devmodeId=" + devmodeId + + ", devcount=" + devcount + + ", deliveryTime=" + deliveryTime + + ", demand=" + demand + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java new file mode 100644 index 0000000..7785de5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface IAccountService extends IService { + + /** + * 根据用户名查用户 + * @param userName + * @return + */ + Account findUserByName(String userName); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java new file mode 100644 index 0000000..d8b5e87 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IContractService extends IService { + List selectPageList(Page page, String keyword1, String keyword2, String keyword3); + List reportExport(String keyword1, String keyword2, String keyword3); + void importContract( List contracts); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java new file mode 100644 index 0000000..0f2d6e0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IPaymentsService extends IService { + + boolean validate(Long proId,String money,String reorder); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java new file mode 100644 index 0000000..71490df --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -0,0 +1,62 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductDeviceTypeService extends IService { + + /** + * 批量导入设备类型列表 + * @param results + */ + void importDeviceType(List results); + + /** + * 导出列表 + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List reportExport(String keyword1,String keyword2,String keyword3); + + + /** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectPageDataScope(DataScope dataScope, Page page, + String keyword1, String keyword2, String keyword3); + + /** + * 获取在产的设备类型 + * @return + */ + List selectDeviceTypeList(); + + /** + * 根据产品型号获取产品 + * @param deviceModel + * @return + */ + ProductDeviceType selectDeviceTypeByModel(String deviceModel); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java new file mode 100644 index 0000000..455f60a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductFactoryInformationService extends IService { + /** + * 根据条件导出列表 + * @param keyword1 + * @param keyword2 + * @return + */ + List reportExport(String keyword1, String keyword2); + + + /** + * 导入 + * @param results + */ + void importDeviceType(List results); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java new file mode 100644 index 0000000..3c27bd1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface IProjectService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java new file mode 100644 index 0000000..ee0a55c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IReimburseService extends IService { + boolean validate(Long proId,String money,String reorder); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java new file mode 100644 index 0000000..09ce653 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.dao.AccountMapper; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.stereotype.Service; + +/** + *

+ * 管理员表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@Service +public class AccountServiceImpl extends ServiceImpl implements IAccountService { + + @Override + public Account findUserByName(String userName) { + + EntityWrapper userEntityWrapper = new EntityWrapper<>(); + userEntityWrapper.eq("name",userName); + userEntityWrapper.eq("status","1"); + return this.selectOne(userEntityWrapper); + } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java new file mode 100644 index 0000000..4670df3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 集中器相关日志 + */ +public class ProjectDict extends AbstractDictMap { + public static final String PROJECT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + @Override + public void init() { + put("projectName","项目名称"); + put("projectSimpleName","项目简称"); + put("projectManager","项目经理"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java new file mode 100644 index 0000000..7981a17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dto; + +/** + * 用于设备类型展示 + * @author test203 + * @date 2020-04-03 + */ +public class DeviceTypeDto { + private Long id; + private String productName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java new file mode 100644 index 0000000..f254585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java @@ -0,0 +1,361 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.math.BigDecimal; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; + +/** + *

+ * 管理员表 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@TableName("sys_user") +public class Account extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + /** + * 头像 + */ + private String avatar; + /** + * 账号 + */ + private String account; + /** + * 密码 + */ + private String password; + /** + * md5密码盐 + */ + private String salt; + /** + * 名字 + */ + private String name; + /** + * 生日 + */ + private Date birthday; + /** + * 性别(1:男 2:女) + */ + private String sex; + /** + * 电子邮件 + */ + private String email; + /** + * 电话 + */ + private String phone; + /** + * 角色id + */ + private String roleid; + /** + * 部门id + */ + private Long deptid; + /** + * 状态(1:启用 2:冻结 3:删除) + */ + private String status; + /** + * 创建时间 + */ + private Date createtime; + /** + * 保留字段 + */ + private Integer version; + private String targetid; + private String targetname; + @TableField("password_sync") + private String passwordSync; + @TableField("IS_SYNC") + private Integer isSync; + private String simplename; + /** + * 同步组织ID + */ + @TableField("TARGET_DEPTID_SYNC") + private String targetDeptidSync; + @TableField("LOGIN_IP") + private String loginIp; + @TableField("LOGIN_MAC") + private String loginMac; + /** + * 最后在线时间 + */ + @TableField("LAST_TIME") + private Date lastTime; + /** + * 经度 + */ + @TableField("POSITION_LNG") + private BigDecimal positionLng; + /** + * 纬度 + */ + @TableField("POSITION_LAT") + private BigDecimal positionLat; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt() { + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getRoleid() { + return roleid; + } + + public void setRoleid(String roleid) { + this.roleid = roleid; + } + + public Long getDeptid() { + return deptid; + } + + public void setDeptid(Long deptid) { + this.deptid = deptid; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + public String getTargetid() { + return targetid; + } + + public void setTargetid(String targetid) { + this.targetid = targetid; + } + + public String getTargetname() { + return targetname; + } + + public void setTargetname(String targetname) { + this.targetname = targetname; + } + + public String getPasswordSync() { + return passwordSync; + } + + public void setPasswordSync(String passwordSync) { + this.passwordSync = passwordSync; + } + + public Integer getIsSync() { + return isSync; + } + + public void setIsSync(Integer isSync) { + this.isSync = isSync; + } + + public String getSimplename() { + return simplename; + } + + public void setSimplename(String simplename) { + this.simplename = simplename; + } + + public String getTargetDeptidSync() { + return targetDeptidSync; + } + + public void setTargetDeptidSync(String targetDeptidSync) { + this.targetDeptidSync = targetDeptidSync; + } + + public String getLoginIp() { + return loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getLoginMac() { + return loginMac; + } + + public void setLoginMac(String loginMac) { + this.loginMac = loginMac; + } + + public Date getLastTime() { + return lastTime; + } + + public void setLastTime(Date lastTime) { + this.lastTime = lastTime; + } + + public BigDecimal getPositionLng() { + return positionLng; + } + + public void setPositionLng(BigDecimal positionLng) { + this.positionLng = positionLng; + } + + public BigDecimal getPositionLat() { + return positionLat; + } + + public void setPositionLat(BigDecimal positionLat) { + this.positionLat = positionLat; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", avatar=" + avatar + + ", account=" + account + + ", password=" + password + + ", salt=" + salt + + ", name=" + name + + ", birthday=" + birthday + + ", sex=" + sex + + ", email=" + email + + ", phone=" + phone + + ", roleid=" + roleid + + ", deptid=" + deptid + + ", status=" + status + + ", createtime=" + createtime + + ", version=" + version + + ", targetid=" + targetid + + ", targetname=" + targetname + + ", passwordSync=" + passwordSync + + ", isSync=" + isSync + + ", simplename=" + simplename + + ", targetDeptidSync=" + targetDeptidSync + + ", loginIp=" + loginIp + + ", loginMac=" + loginMac + + ", lastTime=" + lastTime + + ", positionLng=" + positionLng + + ", positionLat=" + positionLat + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java new file mode 100644 index 0000000..81516b7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -0,0 +1,110 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_batch") +public class Batch extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_number") + private Long batchNumber; + @TableField("batch_count") + private Long batchCount; + @TableField("contract_id") + private Long contractId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("task_id") + private Long taskId; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(Long batchNumber) { + this.batchNumber = batchNumber; + } + + public Long getBatchCount() { + return batchCount; + } + + public void setBatchCount(Long batchCount) { + this.batchCount = batchCount; + } + + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Batch{" + + "id=" + id + + ", batchNumber=" + batchNumber + + ", batchCount=" + batchCount + + ", contractId=" + contractId + + ", taskId=" + taskId + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java new file mode 100644 index 0000000..893a1ed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -0,0 +1,186 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_contract") +public class Contract extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("contract_number") + private String contractNumber; + @TableField("contract_name") + private String contractName; + @TableField("contract_content") + private String contractContent; + @TableField("contract_amount") + private String contractAmount; + @TableField("external_project_apply") + private String externalProjectApply; + @TableField("external_contract_apply") + private String externalContractApply; + @TableField("principal") + private String principal; + @TableField("external_check_apply") + private String externalCheckApply; + @TableField("contract_factory") + private String contractFactory; + @TableField("createtime") + private Date createtime; + @TableField(exist = false) + private String paymentStatus; + @TableField(exist = false) + private String netFlow; + @TableField("deptid") + private String deptid; + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getContractName() { + return contractName; + } + + public void setContractName(String contractName) { + this.contractName = contractName; + } + + public String getContractContent() { + return contractContent; + } + + public void setContractContent(String contractContent) { + this.contractContent = contractContent; + } + + public String getContractAmount() { + return contractAmount; + } + + public void setContractAmount(String contractAmount) { + this.contractAmount = contractAmount; + } + + public String getExternalProjectApply() { + return externalProjectApply; + } + + public void setExternalProjectApply(String externalProjectApply) { + this.externalProjectApply = externalProjectApply; + } + + public String getExternalContractApply() { + return externalContractApply; + } + + public void setExternalContractApply(String externalContractApply) { + this.externalContractApply = externalContractApply; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalCheckApply() { + return externalCheckApply; + } + + public void setExternalCheckApply(String externalCheckApply) { + this.externalCheckApply = externalCheckApply; + } + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public String getContractFactory() { + return contractFactory; + } + + public void setContractFactory(String contractFactory) { + this.contractFactory = contractFactory; + } + + public String getNetFlow() { + return netFlow; + } + + public void setNetFlow(String netFlow) { + this.netFlow = netFlow; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Contract{" + + "contractNumber=" + contractNumber + + ", contractName=" + contractName + + ", contractContent=" + contractContent + + ", contractAmount=" + contractAmount + + ", externalProjectApply=" + externalProjectApply + + ", externalContractApply=" + externalContractApply + + ", principal=" + principal + + ", id=" + id + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java new file mode 100644 index 0000000..8718d91 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -0,0 +1,150 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_device") +public class Device extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_id") + private Long batchId; + private String devcode; + @TableField("devtype_id") + private Long devtypeId; + @TableField("is_send") + private String isSend; + private String longitude; + private String latitude; + @TableField("install_height") + private String installHeight; + private String iccid; + private Long imei; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public Long getImei() { + return imei; + } + + public void setImei(Long imei) { + this.imei = imei; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Device{" + + "id=" + id + + ", batchId=" + batchId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", isSend=" + isSend + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", installHeight=" + installHeight + + ", iccid=" + iccid + + ", imei=" + imei + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java new file mode 100644 index 0000000..870c36f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_payments") +public class Payments extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @TableField("paytime") + private Date paytime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getPaytime() { + return paytime; + } + + public void setPaytime(Date paytime) { + this.paytime = paytime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Payments{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", paytime=" + paytime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java new file mode 100644 index 0000000..ae6b585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -0,0 +1,285 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_device_type") +public class ProductDeviceType extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 产品名称 + */ + @TableField("product_name") + private String productName; + /** + * 产品型号 + */ + @TableField("product_model") + private String productModel; + + /** + * 通讯版本号 + */ + @TableField("communication_version") + private String communicationVersion; + + /** + * 产品类型 + */ + @TableField("product_type") + private String productType; + + /** + * 整机版本号 + */ + @TableField("machine_version") + private String machineVersion; + /** + * 硬件版本号 + */ + @TableField("hardware_version") + private String hardwareVersion; + /** + * 软件版本号 + */ + @TableField("software_version") + private String softwareVersion; + /** + * 设计归档 + */ + @TableField("design_archive") + private String designArchive; + /** + * 批产归档 + */ + @TableField("batch_filing") + private String batchFiling; + /** + * 状态 + */ + @TableField("status") + private Integer status; + /** + * 性能指标 + */ + @TableField("kpi") + private String kpi; + /** + * 批产负责人 + */ + @TableField("principal") + private String principal; + /** + * 定额汇总表 + */ + @TableField("quota_summary") + private String quotaSummary; + + /** + * 权属部门 + */ + @TableField("deptid") + private String deptid; + + /** + * 备注 + */ + @TableField("descn") + private String descn; + + @TableField("createtime") + private Date createtime; + + + @TableField(exist = false) + private String statusFmt; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } + + public String getMachineVersion() { + return machineVersion; + } + + public void setMachineVersion(String machineVersion) { + this.machineVersion = machineVersion; + } + + public String getHardwareVersion() { + return hardwareVersion; + } + + public void setHardwareVersion(String hardwareVersion) { + this.hardwareVersion = hardwareVersion; + } + + public String getSoftwareVersion() { + return softwareVersion; + } + + public void setSoftwareVersion(String softwareVersion) { + this.softwareVersion = softwareVersion; + } + + public String getDesignArchive() { + return designArchive; + } + + public void setDesignArchive(String designArchive) { + this.designArchive = designArchive; + } + + public String getBatchFiling() { + return batchFiling; + } + + public void setBatchFiling(String batchFiling) { + this.batchFiling = batchFiling; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getKpi() { + return kpi; + } + + public void setKpi(String kpi) { + this.kpi = kpi; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public String getQuotaSummary() { + return quotaSummary; + } + + public void setQuotaSummary(String quotaSummary) { + this.quotaSummary = quotaSummary; + } + + public String getStatusFmt() { + return statusFmt; + } + + public void setStatusFmt(String statusFmt) { + this.statusFmt = statusFmt; + } + + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getProductType() { + return productType; + } + + public void setProductType(String productType) { + this.productType = productType; + } + + public String getCommunicationVersion() { + return communicationVersion; + } + + public void setCommunicationVersion(String communicationVersion) { + this.communicationVersion = communicationVersion; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductDeviceType{" + + "id=" + id + + ", productName=" + productName + + ", productModel=" + productModel + + ", machineVersion=" + machineVersion + + ", hardwareVersion=" + hardwareVersion + + ", softwareVersion=" + softwareVersion + + ", designArchive=" + designArchive + + ", batchFiling=" + batchFiling + + ", status=" + status + + ", kpi=" + kpi + + ", principal=" + principal + + ", quotaSummary=" + quotaSummary + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java new file mode 100644 index 0000000..b0fd924 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java @@ -0,0 +1,187 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_factory_information") +public class ProductFactoryInformation extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 厂家名称 + */ + @TableField("name") + private String name; + /** + * 厂家联系人 + */ + @TableField("person_name") + private String personName; + /** + * 地址 + */ + @TableField("address") + private String address; + /** + * 电话 + */ + @TableField("phone") + private String phone; + /** + * 开户行 + */ + @TableField("bank") + private String bank; + /** + * 税号 + */ + @TableField("tax_number") + private String taxNumber; + /** + * 在产设备 + */ + @TableField("producting_device") + private String productingDevice; + /** + * 设备报价表 + */ + @TableField("equipment_quotation") + private String equipmentQuotation; + + @TableField("createtime") + private Date createtime =new Date(); + + @TableField("deptid") + private String deptid; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPersonName() { + return personName; + } + + public void setPersonName(String personName) { + this.personName = personName; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getBank() { + return bank; + } + + public void setBank(String bank) { + this.bank = bank; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getProductingDevice() { + return productingDevice; + } + + public void setProductingDevice(String productingDevice) { + this.productingDevice = productingDevice; + } + + public String getEquipmentQuotation() { + return equipmentQuotation; + } + + public void setEquipmentQuotation(String equipmentQuotation) { + this.equipmentQuotation = equipmentQuotation; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductFactoryInformation{" + + "id=" + id + + ", name=" + name + + ", personName=" + personName + + ", address=" + address + + ", phone=" + phone + + ", bank=" + bank + + ", taxNumber=" + taxNumber + + ", productingDevice=" + productingDevice + + ", equipmentQuotation=" + equipmentQuotation + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java new file mode 100644 index 0000000..00cbc92 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -0,0 +1,99 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@TableName("product_project") +public class Project extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_name") + private String projectName; + @TableField("project_simple_name") + private String projectSimpleName; + @TableField("project_manager") + private String projectManager; + private String descn; + @TableField("createtime") + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getProjectManager() { + return projectManager; + } + + public void setProjectManager(String projectManager) { + this.projectManager = projectManager; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Project{" + + "id=" + id + + ", projectName=" + projectName + + ", projectSimpleName=" + projectSimpleName + + ", projectManager=" + projectManager + + ", descn=" + descn + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java new file mode 100644 index 0000000..658c2e1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java @@ -0,0 +1,126 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_reimburse") +public class Reimburse extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mi:ss") + @TableField("reimburse_time") + private Date reimburseTime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getReimburseTime() { + return reimburseTime; + } + + public void setReimburseTime(Date reimburseTime) { + this.reimburseTime = reimburseTime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Reimburse{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", reimburseTime=" + reimburseTime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java new file mode 100644 index 0000000..987efa7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java @@ -0,0 +1,141 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_task") +public class Task extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_id") + private Long projectId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("devmode_id") + private String devmodeId; + private Long devcount; + @TableField("delivery_time") + private Date deliveryTime; + private String demand; + private Date createtime; + @TableField(exist = false) + private String deliveryTimeFmt; + + @TableField(exist = false) + private Long taskId; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getProjectId() { + return projectId; + } + + public void setProjectId(Long projectId) { + this.projectId = projectId; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDevmodeId() { + return devmodeId; + } + + public void setDevmodeId(String devmodeId) { + this.devmodeId = devmodeId; + } + + public Long getDevcount() { + return devcount; + } + + public void setDevcount(Long devcount) { + this.devcount = devcount; + } + + public Date getDeliveryTime() { + return deliveryTime; + } + + public void setDeliveryTime(Date deliveryTime) { + this.deliveryTime = deliveryTime; + } + + public String getDemand() { + return demand; + } + + public void setDemand(String demand) { + this.demand = demand; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeliveryTimeFmt() { + return deliveryTimeFmt; + } + + public void setDeliveryTimeFmt(String deliveryTimeFmt) { + this.deliveryTimeFmt = deliveryTimeFmt; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Task{" + + "id=" + id + + ", projectId=" + projectId + + ", devtypeId=" + devtypeId + + ", devmodeId=" + devmodeId + + ", devcount=" + devcount + + ", deliveryTime=" + deliveryTime + + ", demand=" + demand + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java new file mode 100644 index 0000000..7785de5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface IAccountService extends IService { + + /** + * 根据用户名查用户 + * @param userName + * @return + */ + Account findUserByName(String userName); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java new file mode 100644 index 0000000..d8b5e87 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IContractService extends IService { + List selectPageList(Page page, String keyword1, String keyword2, String keyword3); + List reportExport(String keyword1, String keyword2, String keyword3); + void importContract( List contracts); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java new file mode 100644 index 0000000..0f2d6e0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IPaymentsService extends IService { + + boolean validate(Long proId,String money,String reorder); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java new file mode 100644 index 0000000..71490df --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -0,0 +1,62 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductDeviceTypeService extends IService { + + /** + * 批量导入设备类型列表 + * @param results + */ + void importDeviceType(List results); + + /** + * 导出列表 + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List reportExport(String keyword1,String keyword2,String keyword3); + + + /** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectPageDataScope(DataScope dataScope, Page page, + String keyword1, String keyword2, String keyword3); + + /** + * 获取在产的设备类型 + * @return + */ + List selectDeviceTypeList(); + + /** + * 根据产品型号获取产品 + * @param deviceModel + * @return + */ + ProductDeviceType selectDeviceTypeByModel(String deviceModel); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java new file mode 100644 index 0000000..455f60a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductFactoryInformationService extends IService { + /** + * 根据条件导出列表 + * @param keyword1 + * @param keyword2 + * @return + */ + List reportExport(String keyword1, String keyword2); + + + /** + * 导入 + * @param results + */ + void importDeviceType(List results); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java new file mode 100644 index 0000000..3c27bd1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface IProjectService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java new file mode 100644 index 0000000..ee0a55c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IReimburseService extends IService { + boolean validate(Long proId,String money,String reorder); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java new file mode 100644 index 0000000..09ce653 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.dao.AccountMapper; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.stereotype.Service; + +/** + *

+ * 管理员表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@Service +public class AccountServiceImpl extends ServiceImpl implements IAccountService { + + @Override + public Account findUserByName(String userName) { + + EntityWrapper userEntityWrapper = new EntityWrapper<>(); + userEntityWrapper.eq("name",userName); + userEntityWrapper.eq("status","1"); + return this.selectOne(userEntityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java new file mode 100644 index 0000000..dd04da0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java @@ -0,0 +1,138 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.shiro.ShiroUser; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ContractMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IPaymentsService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ContractServiceImpl extends ServiceImpl implements IContractService { + @Autowired + private IPaymentsService paymentsService; + @Autowired + private ICommonPermissionService permissionService; + @Autowired + private IAccountService userService; + @Value("${casic.producerName}") + private String producerName; + @Value("${casic.repairName}") + private String repairName; + + @Override + public List selectPageList(Page page, String keyword1, String keyword2, String keyword3) { + +// EntityWrapper query = new EntityWrapper<>(); +// if (ToolUtil.isNotEmpty(keyword1)) { +// query.like("contract_factory", keyword1); +// } +// if (ToolUtil.isNotEmpty(keyword3)) { +// query.like("contract_number", keyword3); +// } +// List contractList = this.selectPage(page, query).getRecords(); +// contractList.forEach(contract -> { +// contract.setPaymentStatus(getPaymentStatus(contract)); +// String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" +// + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" +// + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); +// contract.setNetFlow(netFlowStr); +// +// }); +// return contractList; + + + List contractList = new ArrayList<>(); + DataScope dataScope = permissionService.getCurrUserDataScope(); + ShiroUser currentUser = permissionService.getCurrLoginUser(); + if (currentUser.getRoleTips().contains(producerName) || currentUser.getRoleTips().contains(repairName)) { + contractList = this.baseMapper.findContractList(dataScope,page, currentUser.getName(), keyword1, keyword2, keyword3); + } else { + contractList = this.baseMapper.findContractList(dataScope,page, "", keyword1, keyword2, keyword3); + } + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + + }); + return contractList; + } + + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + + + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("contractFactory", keyword1); + } + if (ToolUtil.isNotEmpty(keyword3)) { + query.like("contract_number", keyword3); + } + + List contractList = this.selectList(query); + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); +// permissionService.findInDictByCode("applyStatus") + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + }); + + return contractList; + } + + @Override + public void importContract(List contracts) { + contracts.forEach(contract -> { + EntityWrapper query = new EntityWrapper<>(); + query.eq("contract_number", contract.getContractNumber()); + this.delete(query); + Account user = userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); + this.insert(contract); + }); + } + + public String getPaymentStatus(Contract contract) { + Map paraMap = new HashMap<>(); + paraMap.put("pro_id", contract.getId()); + List paymentsList = paymentsService.selectByMap(paraMap); + float sum = 0; + for (Payments payments : paymentsList) { + sum = sum + (ToolUtil.isNotEmpty(payments.getMoney()) ? Float.parseFloat(payments.getMoney()) : 0); + } + DecimalFormat df = new DecimalFormat("0"); + return sum + "," + df.format(100 * sum / Float.valueOf(contract.getContractAmount())) + "%"; + } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java new file mode 100644 index 0000000..4670df3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 集中器相关日志 + */ +public class ProjectDict extends AbstractDictMap { + public static final String PROJECT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + @Override + public void init() { + put("projectName","项目名称"); + put("projectSimpleName","项目简称"); + put("projectManager","项目经理"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java new file mode 100644 index 0000000..7981a17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dto; + +/** + * 用于设备类型展示 + * @author test203 + * @date 2020-04-03 + */ +public class DeviceTypeDto { + private Long id; + private String productName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java new file mode 100644 index 0000000..f254585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java @@ -0,0 +1,361 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.math.BigDecimal; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; + +/** + *

+ * 管理员表 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@TableName("sys_user") +public class Account extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + /** + * 头像 + */ + private String avatar; + /** + * 账号 + */ + private String account; + /** + * 密码 + */ + private String password; + /** + * md5密码盐 + */ + private String salt; + /** + * 名字 + */ + private String name; + /** + * 生日 + */ + private Date birthday; + /** + * 性别(1:男 2:女) + */ + private String sex; + /** + * 电子邮件 + */ + private String email; + /** + * 电话 + */ + private String phone; + /** + * 角色id + */ + private String roleid; + /** + * 部门id + */ + private Long deptid; + /** + * 状态(1:启用 2:冻结 3:删除) + */ + private String status; + /** + * 创建时间 + */ + private Date createtime; + /** + * 保留字段 + */ + private Integer version; + private String targetid; + private String targetname; + @TableField("password_sync") + private String passwordSync; + @TableField("IS_SYNC") + private Integer isSync; + private String simplename; + /** + * 同步组织ID + */ + @TableField("TARGET_DEPTID_SYNC") + private String targetDeptidSync; + @TableField("LOGIN_IP") + private String loginIp; + @TableField("LOGIN_MAC") + private String loginMac; + /** + * 最后在线时间 + */ + @TableField("LAST_TIME") + private Date lastTime; + /** + * 经度 + */ + @TableField("POSITION_LNG") + private BigDecimal positionLng; + /** + * 纬度 + */ + @TableField("POSITION_LAT") + private BigDecimal positionLat; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt() { + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getRoleid() { + return roleid; + } + + public void setRoleid(String roleid) { + this.roleid = roleid; + } + + public Long getDeptid() { + return deptid; + } + + public void setDeptid(Long deptid) { + this.deptid = deptid; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + public String getTargetid() { + return targetid; + } + + public void setTargetid(String targetid) { + this.targetid = targetid; + } + + public String getTargetname() { + return targetname; + } + + public void setTargetname(String targetname) { + this.targetname = targetname; + } + + public String getPasswordSync() { + return passwordSync; + } + + public void setPasswordSync(String passwordSync) { + this.passwordSync = passwordSync; + } + + public Integer getIsSync() { + return isSync; + } + + public void setIsSync(Integer isSync) { + this.isSync = isSync; + } + + public String getSimplename() { + return simplename; + } + + public void setSimplename(String simplename) { + this.simplename = simplename; + } + + public String getTargetDeptidSync() { + return targetDeptidSync; + } + + public void setTargetDeptidSync(String targetDeptidSync) { + this.targetDeptidSync = targetDeptidSync; + } + + public String getLoginIp() { + return loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getLoginMac() { + return loginMac; + } + + public void setLoginMac(String loginMac) { + this.loginMac = loginMac; + } + + public Date getLastTime() { + return lastTime; + } + + public void setLastTime(Date lastTime) { + this.lastTime = lastTime; + } + + public BigDecimal getPositionLng() { + return positionLng; + } + + public void setPositionLng(BigDecimal positionLng) { + this.positionLng = positionLng; + } + + public BigDecimal getPositionLat() { + return positionLat; + } + + public void setPositionLat(BigDecimal positionLat) { + this.positionLat = positionLat; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", avatar=" + avatar + + ", account=" + account + + ", password=" + password + + ", salt=" + salt + + ", name=" + name + + ", birthday=" + birthday + + ", sex=" + sex + + ", email=" + email + + ", phone=" + phone + + ", roleid=" + roleid + + ", deptid=" + deptid + + ", status=" + status + + ", createtime=" + createtime + + ", version=" + version + + ", targetid=" + targetid + + ", targetname=" + targetname + + ", passwordSync=" + passwordSync + + ", isSync=" + isSync + + ", simplename=" + simplename + + ", targetDeptidSync=" + targetDeptidSync + + ", loginIp=" + loginIp + + ", loginMac=" + loginMac + + ", lastTime=" + lastTime + + ", positionLng=" + positionLng + + ", positionLat=" + positionLat + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java new file mode 100644 index 0000000..81516b7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -0,0 +1,110 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_batch") +public class Batch extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_number") + private Long batchNumber; + @TableField("batch_count") + private Long batchCount; + @TableField("contract_id") + private Long contractId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("task_id") + private Long taskId; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(Long batchNumber) { + this.batchNumber = batchNumber; + } + + public Long getBatchCount() { + return batchCount; + } + + public void setBatchCount(Long batchCount) { + this.batchCount = batchCount; + } + + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Batch{" + + "id=" + id + + ", batchNumber=" + batchNumber + + ", batchCount=" + batchCount + + ", contractId=" + contractId + + ", taskId=" + taskId + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java new file mode 100644 index 0000000..893a1ed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -0,0 +1,186 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_contract") +public class Contract extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("contract_number") + private String contractNumber; + @TableField("contract_name") + private String contractName; + @TableField("contract_content") + private String contractContent; + @TableField("contract_amount") + private String contractAmount; + @TableField("external_project_apply") + private String externalProjectApply; + @TableField("external_contract_apply") + private String externalContractApply; + @TableField("principal") + private String principal; + @TableField("external_check_apply") + private String externalCheckApply; + @TableField("contract_factory") + private String contractFactory; + @TableField("createtime") + private Date createtime; + @TableField(exist = false) + private String paymentStatus; + @TableField(exist = false) + private String netFlow; + @TableField("deptid") + private String deptid; + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getContractName() { + return contractName; + } + + public void setContractName(String contractName) { + this.contractName = contractName; + } + + public String getContractContent() { + return contractContent; + } + + public void setContractContent(String contractContent) { + this.contractContent = contractContent; + } + + public String getContractAmount() { + return contractAmount; + } + + public void setContractAmount(String contractAmount) { + this.contractAmount = contractAmount; + } + + public String getExternalProjectApply() { + return externalProjectApply; + } + + public void setExternalProjectApply(String externalProjectApply) { + this.externalProjectApply = externalProjectApply; + } + + public String getExternalContractApply() { + return externalContractApply; + } + + public void setExternalContractApply(String externalContractApply) { + this.externalContractApply = externalContractApply; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalCheckApply() { + return externalCheckApply; + } + + public void setExternalCheckApply(String externalCheckApply) { + this.externalCheckApply = externalCheckApply; + } + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public String getContractFactory() { + return contractFactory; + } + + public void setContractFactory(String contractFactory) { + this.contractFactory = contractFactory; + } + + public String getNetFlow() { + return netFlow; + } + + public void setNetFlow(String netFlow) { + this.netFlow = netFlow; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Contract{" + + "contractNumber=" + contractNumber + + ", contractName=" + contractName + + ", contractContent=" + contractContent + + ", contractAmount=" + contractAmount + + ", externalProjectApply=" + externalProjectApply + + ", externalContractApply=" + externalContractApply + + ", principal=" + principal + + ", id=" + id + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java new file mode 100644 index 0000000..8718d91 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -0,0 +1,150 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_device") +public class Device extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_id") + private Long batchId; + private String devcode; + @TableField("devtype_id") + private Long devtypeId; + @TableField("is_send") + private String isSend; + private String longitude; + private String latitude; + @TableField("install_height") + private String installHeight; + private String iccid; + private Long imei; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public Long getImei() { + return imei; + } + + public void setImei(Long imei) { + this.imei = imei; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Device{" + + "id=" + id + + ", batchId=" + batchId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", isSend=" + isSend + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", installHeight=" + installHeight + + ", iccid=" + iccid + + ", imei=" + imei + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java new file mode 100644 index 0000000..870c36f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_payments") +public class Payments extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @TableField("paytime") + private Date paytime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getPaytime() { + return paytime; + } + + public void setPaytime(Date paytime) { + this.paytime = paytime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Payments{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", paytime=" + paytime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java new file mode 100644 index 0000000..ae6b585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -0,0 +1,285 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_device_type") +public class ProductDeviceType extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 产品名称 + */ + @TableField("product_name") + private String productName; + /** + * 产品型号 + */ + @TableField("product_model") + private String productModel; + + /** + * 通讯版本号 + */ + @TableField("communication_version") + private String communicationVersion; + + /** + * 产品类型 + */ + @TableField("product_type") + private String productType; + + /** + * 整机版本号 + */ + @TableField("machine_version") + private String machineVersion; + /** + * 硬件版本号 + */ + @TableField("hardware_version") + private String hardwareVersion; + /** + * 软件版本号 + */ + @TableField("software_version") + private String softwareVersion; + /** + * 设计归档 + */ + @TableField("design_archive") + private String designArchive; + /** + * 批产归档 + */ + @TableField("batch_filing") + private String batchFiling; + /** + * 状态 + */ + @TableField("status") + private Integer status; + /** + * 性能指标 + */ + @TableField("kpi") + private String kpi; + /** + * 批产负责人 + */ + @TableField("principal") + private String principal; + /** + * 定额汇总表 + */ + @TableField("quota_summary") + private String quotaSummary; + + /** + * 权属部门 + */ + @TableField("deptid") + private String deptid; + + /** + * 备注 + */ + @TableField("descn") + private String descn; + + @TableField("createtime") + private Date createtime; + + + @TableField(exist = false) + private String statusFmt; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } + + public String getMachineVersion() { + return machineVersion; + } + + public void setMachineVersion(String machineVersion) { + this.machineVersion = machineVersion; + } + + public String getHardwareVersion() { + return hardwareVersion; + } + + public void setHardwareVersion(String hardwareVersion) { + this.hardwareVersion = hardwareVersion; + } + + public String getSoftwareVersion() { + return softwareVersion; + } + + public void setSoftwareVersion(String softwareVersion) { + this.softwareVersion = softwareVersion; + } + + public String getDesignArchive() { + return designArchive; + } + + public void setDesignArchive(String designArchive) { + this.designArchive = designArchive; + } + + public String getBatchFiling() { + return batchFiling; + } + + public void setBatchFiling(String batchFiling) { + this.batchFiling = batchFiling; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getKpi() { + return kpi; + } + + public void setKpi(String kpi) { + this.kpi = kpi; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public String getQuotaSummary() { + return quotaSummary; + } + + public void setQuotaSummary(String quotaSummary) { + this.quotaSummary = quotaSummary; + } + + public String getStatusFmt() { + return statusFmt; + } + + public void setStatusFmt(String statusFmt) { + this.statusFmt = statusFmt; + } + + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getProductType() { + return productType; + } + + public void setProductType(String productType) { + this.productType = productType; + } + + public String getCommunicationVersion() { + return communicationVersion; + } + + public void setCommunicationVersion(String communicationVersion) { + this.communicationVersion = communicationVersion; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductDeviceType{" + + "id=" + id + + ", productName=" + productName + + ", productModel=" + productModel + + ", machineVersion=" + machineVersion + + ", hardwareVersion=" + hardwareVersion + + ", softwareVersion=" + softwareVersion + + ", designArchive=" + designArchive + + ", batchFiling=" + batchFiling + + ", status=" + status + + ", kpi=" + kpi + + ", principal=" + principal + + ", quotaSummary=" + quotaSummary + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java new file mode 100644 index 0000000..b0fd924 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java @@ -0,0 +1,187 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_factory_information") +public class ProductFactoryInformation extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 厂家名称 + */ + @TableField("name") + private String name; + /** + * 厂家联系人 + */ + @TableField("person_name") + private String personName; + /** + * 地址 + */ + @TableField("address") + private String address; + /** + * 电话 + */ + @TableField("phone") + private String phone; + /** + * 开户行 + */ + @TableField("bank") + private String bank; + /** + * 税号 + */ + @TableField("tax_number") + private String taxNumber; + /** + * 在产设备 + */ + @TableField("producting_device") + private String productingDevice; + /** + * 设备报价表 + */ + @TableField("equipment_quotation") + private String equipmentQuotation; + + @TableField("createtime") + private Date createtime =new Date(); + + @TableField("deptid") + private String deptid; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPersonName() { + return personName; + } + + public void setPersonName(String personName) { + this.personName = personName; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getBank() { + return bank; + } + + public void setBank(String bank) { + this.bank = bank; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getProductingDevice() { + return productingDevice; + } + + public void setProductingDevice(String productingDevice) { + this.productingDevice = productingDevice; + } + + public String getEquipmentQuotation() { + return equipmentQuotation; + } + + public void setEquipmentQuotation(String equipmentQuotation) { + this.equipmentQuotation = equipmentQuotation; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductFactoryInformation{" + + "id=" + id + + ", name=" + name + + ", personName=" + personName + + ", address=" + address + + ", phone=" + phone + + ", bank=" + bank + + ", taxNumber=" + taxNumber + + ", productingDevice=" + productingDevice + + ", equipmentQuotation=" + equipmentQuotation + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java new file mode 100644 index 0000000..00cbc92 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -0,0 +1,99 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@TableName("product_project") +public class Project extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_name") + private String projectName; + @TableField("project_simple_name") + private String projectSimpleName; + @TableField("project_manager") + private String projectManager; + private String descn; + @TableField("createtime") + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getProjectManager() { + return projectManager; + } + + public void setProjectManager(String projectManager) { + this.projectManager = projectManager; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Project{" + + "id=" + id + + ", projectName=" + projectName + + ", projectSimpleName=" + projectSimpleName + + ", projectManager=" + projectManager + + ", descn=" + descn + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java new file mode 100644 index 0000000..658c2e1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java @@ -0,0 +1,126 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_reimburse") +public class Reimburse extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mi:ss") + @TableField("reimburse_time") + private Date reimburseTime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getReimburseTime() { + return reimburseTime; + } + + public void setReimburseTime(Date reimburseTime) { + this.reimburseTime = reimburseTime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Reimburse{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", reimburseTime=" + reimburseTime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java new file mode 100644 index 0000000..987efa7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java @@ -0,0 +1,141 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_task") +public class Task extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_id") + private Long projectId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("devmode_id") + private String devmodeId; + private Long devcount; + @TableField("delivery_time") + private Date deliveryTime; + private String demand; + private Date createtime; + @TableField(exist = false) + private String deliveryTimeFmt; + + @TableField(exist = false) + private Long taskId; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getProjectId() { + return projectId; + } + + public void setProjectId(Long projectId) { + this.projectId = projectId; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDevmodeId() { + return devmodeId; + } + + public void setDevmodeId(String devmodeId) { + this.devmodeId = devmodeId; + } + + public Long getDevcount() { + return devcount; + } + + public void setDevcount(Long devcount) { + this.devcount = devcount; + } + + public Date getDeliveryTime() { + return deliveryTime; + } + + public void setDeliveryTime(Date deliveryTime) { + this.deliveryTime = deliveryTime; + } + + public String getDemand() { + return demand; + } + + public void setDemand(String demand) { + this.demand = demand; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeliveryTimeFmt() { + return deliveryTimeFmt; + } + + public void setDeliveryTimeFmt(String deliveryTimeFmt) { + this.deliveryTimeFmt = deliveryTimeFmt; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Task{" + + "id=" + id + + ", projectId=" + projectId + + ", devtypeId=" + devtypeId + + ", devmodeId=" + devmodeId + + ", devcount=" + devcount + + ", deliveryTime=" + deliveryTime + + ", demand=" + demand + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java new file mode 100644 index 0000000..7785de5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface IAccountService extends IService { + + /** + * 根据用户名查用户 + * @param userName + * @return + */ + Account findUserByName(String userName); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java new file mode 100644 index 0000000..d8b5e87 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IContractService extends IService { + List selectPageList(Page page, String keyword1, String keyword2, String keyword3); + List reportExport(String keyword1, String keyword2, String keyword3); + void importContract( List contracts); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java new file mode 100644 index 0000000..0f2d6e0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IPaymentsService extends IService { + + boolean validate(Long proId,String money,String reorder); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java new file mode 100644 index 0000000..71490df --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -0,0 +1,62 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductDeviceTypeService extends IService { + + /** + * 批量导入设备类型列表 + * @param results + */ + void importDeviceType(List results); + + /** + * 导出列表 + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List reportExport(String keyword1,String keyword2,String keyword3); + + + /** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectPageDataScope(DataScope dataScope, Page page, + String keyword1, String keyword2, String keyword3); + + /** + * 获取在产的设备类型 + * @return + */ + List selectDeviceTypeList(); + + /** + * 根据产品型号获取产品 + * @param deviceModel + * @return + */ + ProductDeviceType selectDeviceTypeByModel(String deviceModel); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java new file mode 100644 index 0000000..455f60a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductFactoryInformationService extends IService { + /** + * 根据条件导出列表 + * @param keyword1 + * @param keyword2 + * @return + */ + List reportExport(String keyword1, String keyword2); + + + /** + * 导入 + * @param results + */ + void importDeviceType(List results); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java new file mode 100644 index 0000000..3c27bd1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface IProjectService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java new file mode 100644 index 0000000..ee0a55c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IReimburseService extends IService { + boolean validate(Long proId,String money,String reorder); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java new file mode 100644 index 0000000..09ce653 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.dao.AccountMapper; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.stereotype.Service; + +/** + *

+ * 管理员表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@Service +public class AccountServiceImpl extends ServiceImpl implements IAccountService { + + @Override + public Account findUserByName(String userName) { + + EntityWrapper userEntityWrapper = new EntityWrapper<>(); + userEntityWrapper.eq("name",userName); + userEntityWrapper.eq("status","1"); + return this.selectOne(userEntityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java new file mode 100644 index 0000000..dd04da0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java @@ -0,0 +1,138 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.shiro.ShiroUser; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ContractMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IPaymentsService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ContractServiceImpl extends ServiceImpl implements IContractService { + @Autowired + private IPaymentsService paymentsService; + @Autowired + private ICommonPermissionService permissionService; + @Autowired + private IAccountService userService; + @Value("${casic.producerName}") + private String producerName; + @Value("${casic.repairName}") + private String repairName; + + @Override + public List selectPageList(Page page, String keyword1, String keyword2, String keyword3) { + +// EntityWrapper query = new EntityWrapper<>(); +// if (ToolUtil.isNotEmpty(keyword1)) { +// query.like("contract_factory", keyword1); +// } +// if (ToolUtil.isNotEmpty(keyword3)) { +// query.like("contract_number", keyword3); +// } +// List contractList = this.selectPage(page, query).getRecords(); +// contractList.forEach(contract -> { +// contract.setPaymentStatus(getPaymentStatus(contract)); +// String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" +// + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" +// + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); +// contract.setNetFlow(netFlowStr); +// +// }); +// return contractList; + + + List contractList = new ArrayList<>(); + DataScope dataScope = permissionService.getCurrUserDataScope(); + ShiroUser currentUser = permissionService.getCurrLoginUser(); + if (currentUser.getRoleTips().contains(producerName) || currentUser.getRoleTips().contains(repairName)) { + contractList = this.baseMapper.findContractList(dataScope,page, currentUser.getName(), keyword1, keyword2, keyword3); + } else { + contractList = this.baseMapper.findContractList(dataScope,page, "", keyword1, keyword2, keyword3); + } + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + + }); + return contractList; + } + + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + + + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("contractFactory", keyword1); + } + if (ToolUtil.isNotEmpty(keyword3)) { + query.like("contract_number", keyword3); + } + + List contractList = this.selectList(query); + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); +// permissionService.findInDictByCode("applyStatus") + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + }); + + return contractList; + } + + @Override + public void importContract(List contracts) { + contracts.forEach(contract -> { + EntityWrapper query = new EntityWrapper<>(); + query.eq("contract_number", contract.getContractNumber()); + this.delete(query); + Account user = userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); + this.insert(contract); + }); + } + + public String getPaymentStatus(Contract contract) { + Map paraMap = new HashMap<>(); + paraMap.put("pro_id", contract.getId()); + List paymentsList = paymentsService.selectByMap(paraMap); + float sum = 0; + for (Payments payments : paymentsList) { + sum = sum + (ToolUtil.isNotEmpty(payments.getMoney()) ? Float.parseFloat(payments.getMoney()) : 0); + } + DecimalFormat df = new DecimalFormat("0"); + return sum + "," + df.format(100 * sum / Float.valueOf(contract.getContractAmount())) + "%"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java new file mode 100644 index 0000000..0c125d8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PaymentsMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class PaymentsServiceImpl extends ServiceImpl implements IPaymentsService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money,String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List paymentsList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Payments payments : paymentsList) { + if(reorder.equals(payments.getReorder())) continue; + total += ToolUtil.isNotEmpty(payments.getMoney()) ? + Long.valueOf(payments.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java new file mode 100644 index 0000000..4670df3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 集中器相关日志 + */ +public class ProjectDict extends AbstractDictMap { + public static final String PROJECT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + @Override + public void init() { + put("projectName","项目名称"); + put("projectSimpleName","项目简称"); + put("projectManager","项目经理"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java new file mode 100644 index 0000000..7981a17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dto; + +/** + * 用于设备类型展示 + * @author test203 + * @date 2020-04-03 + */ +public class DeviceTypeDto { + private Long id; + private String productName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java new file mode 100644 index 0000000..f254585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java @@ -0,0 +1,361 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.math.BigDecimal; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; + +/** + *

+ * 管理员表 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@TableName("sys_user") +public class Account extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + /** + * 头像 + */ + private String avatar; + /** + * 账号 + */ + private String account; + /** + * 密码 + */ + private String password; + /** + * md5密码盐 + */ + private String salt; + /** + * 名字 + */ + private String name; + /** + * 生日 + */ + private Date birthday; + /** + * 性别(1:男 2:女) + */ + private String sex; + /** + * 电子邮件 + */ + private String email; + /** + * 电话 + */ + private String phone; + /** + * 角色id + */ + private String roleid; + /** + * 部门id + */ + private Long deptid; + /** + * 状态(1:启用 2:冻结 3:删除) + */ + private String status; + /** + * 创建时间 + */ + private Date createtime; + /** + * 保留字段 + */ + private Integer version; + private String targetid; + private String targetname; + @TableField("password_sync") + private String passwordSync; + @TableField("IS_SYNC") + private Integer isSync; + private String simplename; + /** + * 同步组织ID + */ + @TableField("TARGET_DEPTID_SYNC") + private String targetDeptidSync; + @TableField("LOGIN_IP") + private String loginIp; + @TableField("LOGIN_MAC") + private String loginMac; + /** + * 最后在线时间 + */ + @TableField("LAST_TIME") + private Date lastTime; + /** + * 经度 + */ + @TableField("POSITION_LNG") + private BigDecimal positionLng; + /** + * 纬度 + */ + @TableField("POSITION_LAT") + private BigDecimal positionLat; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt() { + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getRoleid() { + return roleid; + } + + public void setRoleid(String roleid) { + this.roleid = roleid; + } + + public Long getDeptid() { + return deptid; + } + + public void setDeptid(Long deptid) { + this.deptid = deptid; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + public String getTargetid() { + return targetid; + } + + public void setTargetid(String targetid) { + this.targetid = targetid; + } + + public String getTargetname() { + return targetname; + } + + public void setTargetname(String targetname) { + this.targetname = targetname; + } + + public String getPasswordSync() { + return passwordSync; + } + + public void setPasswordSync(String passwordSync) { + this.passwordSync = passwordSync; + } + + public Integer getIsSync() { + return isSync; + } + + public void setIsSync(Integer isSync) { + this.isSync = isSync; + } + + public String getSimplename() { + return simplename; + } + + public void setSimplename(String simplename) { + this.simplename = simplename; + } + + public String getTargetDeptidSync() { + return targetDeptidSync; + } + + public void setTargetDeptidSync(String targetDeptidSync) { + this.targetDeptidSync = targetDeptidSync; + } + + public String getLoginIp() { + return loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getLoginMac() { + return loginMac; + } + + public void setLoginMac(String loginMac) { + this.loginMac = loginMac; + } + + public Date getLastTime() { + return lastTime; + } + + public void setLastTime(Date lastTime) { + this.lastTime = lastTime; + } + + public BigDecimal getPositionLng() { + return positionLng; + } + + public void setPositionLng(BigDecimal positionLng) { + this.positionLng = positionLng; + } + + public BigDecimal getPositionLat() { + return positionLat; + } + + public void setPositionLat(BigDecimal positionLat) { + this.positionLat = positionLat; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", avatar=" + avatar + + ", account=" + account + + ", password=" + password + + ", salt=" + salt + + ", name=" + name + + ", birthday=" + birthday + + ", sex=" + sex + + ", email=" + email + + ", phone=" + phone + + ", roleid=" + roleid + + ", deptid=" + deptid + + ", status=" + status + + ", createtime=" + createtime + + ", version=" + version + + ", targetid=" + targetid + + ", targetname=" + targetname + + ", passwordSync=" + passwordSync + + ", isSync=" + isSync + + ", simplename=" + simplename + + ", targetDeptidSync=" + targetDeptidSync + + ", loginIp=" + loginIp + + ", loginMac=" + loginMac + + ", lastTime=" + lastTime + + ", positionLng=" + positionLng + + ", positionLat=" + positionLat + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java new file mode 100644 index 0000000..81516b7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -0,0 +1,110 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_batch") +public class Batch extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_number") + private Long batchNumber; + @TableField("batch_count") + private Long batchCount; + @TableField("contract_id") + private Long contractId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("task_id") + private Long taskId; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(Long batchNumber) { + this.batchNumber = batchNumber; + } + + public Long getBatchCount() { + return batchCount; + } + + public void setBatchCount(Long batchCount) { + this.batchCount = batchCount; + } + + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Batch{" + + "id=" + id + + ", batchNumber=" + batchNumber + + ", batchCount=" + batchCount + + ", contractId=" + contractId + + ", taskId=" + taskId + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java new file mode 100644 index 0000000..893a1ed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -0,0 +1,186 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_contract") +public class Contract extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("contract_number") + private String contractNumber; + @TableField("contract_name") + private String contractName; + @TableField("contract_content") + private String contractContent; + @TableField("contract_amount") + private String contractAmount; + @TableField("external_project_apply") + private String externalProjectApply; + @TableField("external_contract_apply") + private String externalContractApply; + @TableField("principal") + private String principal; + @TableField("external_check_apply") + private String externalCheckApply; + @TableField("contract_factory") + private String contractFactory; + @TableField("createtime") + private Date createtime; + @TableField(exist = false) + private String paymentStatus; + @TableField(exist = false) + private String netFlow; + @TableField("deptid") + private String deptid; + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getContractName() { + return contractName; + } + + public void setContractName(String contractName) { + this.contractName = contractName; + } + + public String getContractContent() { + return contractContent; + } + + public void setContractContent(String contractContent) { + this.contractContent = contractContent; + } + + public String getContractAmount() { + return contractAmount; + } + + public void setContractAmount(String contractAmount) { + this.contractAmount = contractAmount; + } + + public String getExternalProjectApply() { + return externalProjectApply; + } + + public void setExternalProjectApply(String externalProjectApply) { + this.externalProjectApply = externalProjectApply; + } + + public String getExternalContractApply() { + return externalContractApply; + } + + public void setExternalContractApply(String externalContractApply) { + this.externalContractApply = externalContractApply; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalCheckApply() { + return externalCheckApply; + } + + public void setExternalCheckApply(String externalCheckApply) { + this.externalCheckApply = externalCheckApply; + } + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public String getContractFactory() { + return contractFactory; + } + + public void setContractFactory(String contractFactory) { + this.contractFactory = contractFactory; + } + + public String getNetFlow() { + return netFlow; + } + + public void setNetFlow(String netFlow) { + this.netFlow = netFlow; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Contract{" + + "contractNumber=" + contractNumber + + ", contractName=" + contractName + + ", contractContent=" + contractContent + + ", contractAmount=" + contractAmount + + ", externalProjectApply=" + externalProjectApply + + ", externalContractApply=" + externalContractApply + + ", principal=" + principal + + ", id=" + id + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java new file mode 100644 index 0000000..8718d91 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -0,0 +1,150 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_device") +public class Device extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_id") + private Long batchId; + private String devcode; + @TableField("devtype_id") + private Long devtypeId; + @TableField("is_send") + private String isSend; + private String longitude; + private String latitude; + @TableField("install_height") + private String installHeight; + private String iccid; + private Long imei; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public Long getImei() { + return imei; + } + + public void setImei(Long imei) { + this.imei = imei; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Device{" + + "id=" + id + + ", batchId=" + batchId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", isSend=" + isSend + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", installHeight=" + installHeight + + ", iccid=" + iccid + + ", imei=" + imei + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java new file mode 100644 index 0000000..870c36f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_payments") +public class Payments extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @TableField("paytime") + private Date paytime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getPaytime() { + return paytime; + } + + public void setPaytime(Date paytime) { + this.paytime = paytime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Payments{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", paytime=" + paytime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java new file mode 100644 index 0000000..ae6b585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -0,0 +1,285 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_device_type") +public class ProductDeviceType extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 产品名称 + */ + @TableField("product_name") + private String productName; + /** + * 产品型号 + */ + @TableField("product_model") + private String productModel; + + /** + * 通讯版本号 + */ + @TableField("communication_version") + private String communicationVersion; + + /** + * 产品类型 + */ + @TableField("product_type") + private String productType; + + /** + * 整机版本号 + */ + @TableField("machine_version") + private String machineVersion; + /** + * 硬件版本号 + */ + @TableField("hardware_version") + private String hardwareVersion; + /** + * 软件版本号 + */ + @TableField("software_version") + private String softwareVersion; + /** + * 设计归档 + */ + @TableField("design_archive") + private String designArchive; + /** + * 批产归档 + */ + @TableField("batch_filing") + private String batchFiling; + /** + * 状态 + */ + @TableField("status") + private Integer status; + /** + * 性能指标 + */ + @TableField("kpi") + private String kpi; + /** + * 批产负责人 + */ + @TableField("principal") + private String principal; + /** + * 定额汇总表 + */ + @TableField("quota_summary") + private String quotaSummary; + + /** + * 权属部门 + */ + @TableField("deptid") + private String deptid; + + /** + * 备注 + */ + @TableField("descn") + private String descn; + + @TableField("createtime") + private Date createtime; + + + @TableField(exist = false) + private String statusFmt; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } + + public String getMachineVersion() { + return machineVersion; + } + + public void setMachineVersion(String machineVersion) { + this.machineVersion = machineVersion; + } + + public String getHardwareVersion() { + return hardwareVersion; + } + + public void setHardwareVersion(String hardwareVersion) { + this.hardwareVersion = hardwareVersion; + } + + public String getSoftwareVersion() { + return softwareVersion; + } + + public void setSoftwareVersion(String softwareVersion) { + this.softwareVersion = softwareVersion; + } + + public String getDesignArchive() { + return designArchive; + } + + public void setDesignArchive(String designArchive) { + this.designArchive = designArchive; + } + + public String getBatchFiling() { + return batchFiling; + } + + public void setBatchFiling(String batchFiling) { + this.batchFiling = batchFiling; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getKpi() { + return kpi; + } + + public void setKpi(String kpi) { + this.kpi = kpi; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public String getQuotaSummary() { + return quotaSummary; + } + + public void setQuotaSummary(String quotaSummary) { + this.quotaSummary = quotaSummary; + } + + public String getStatusFmt() { + return statusFmt; + } + + public void setStatusFmt(String statusFmt) { + this.statusFmt = statusFmt; + } + + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getProductType() { + return productType; + } + + public void setProductType(String productType) { + this.productType = productType; + } + + public String getCommunicationVersion() { + return communicationVersion; + } + + public void setCommunicationVersion(String communicationVersion) { + this.communicationVersion = communicationVersion; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductDeviceType{" + + "id=" + id + + ", productName=" + productName + + ", productModel=" + productModel + + ", machineVersion=" + machineVersion + + ", hardwareVersion=" + hardwareVersion + + ", softwareVersion=" + softwareVersion + + ", designArchive=" + designArchive + + ", batchFiling=" + batchFiling + + ", status=" + status + + ", kpi=" + kpi + + ", principal=" + principal + + ", quotaSummary=" + quotaSummary + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java new file mode 100644 index 0000000..b0fd924 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java @@ -0,0 +1,187 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_factory_information") +public class ProductFactoryInformation extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 厂家名称 + */ + @TableField("name") + private String name; + /** + * 厂家联系人 + */ + @TableField("person_name") + private String personName; + /** + * 地址 + */ + @TableField("address") + private String address; + /** + * 电话 + */ + @TableField("phone") + private String phone; + /** + * 开户行 + */ + @TableField("bank") + private String bank; + /** + * 税号 + */ + @TableField("tax_number") + private String taxNumber; + /** + * 在产设备 + */ + @TableField("producting_device") + private String productingDevice; + /** + * 设备报价表 + */ + @TableField("equipment_quotation") + private String equipmentQuotation; + + @TableField("createtime") + private Date createtime =new Date(); + + @TableField("deptid") + private String deptid; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPersonName() { + return personName; + } + + public void setPersonName(String personName) { + this.personName = personName; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getBank() { + return bank; + } + + public void setBank(String bank) { + this.bank = bank; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getProductingDevice() { + return productingDevice; + } + + public void setProductingDevice(String productingDevice) { + this.productingDevice = productingDevice; + } + + public String getEquipmentQuotation() { + return equipmentQuotation; + } + + public void setEquipmentQuotation(String equipmentQuotation) { + this.equipmentQuotation = equipmentQuotation; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductFactoryInformation{" + + "id=" + id + + ", name=" + name + + ", personName=" + personName + + ", address=" + address + + ", phone=" + phone + + ", bank=" + bank + + ", taxNumber=" + taxNumber + + ", productingDevice=" + productingDevice + + ", equipmentQuotation=" + equipmentQuotation + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java new file mode 100644 index 0000000..00cbc92 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -0,0 +1,99 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@TableName("product_project") +public class Project extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_name") + private String projectName; + @TableField("project_simple_name") + private String projectSimpleName; + @TableField("project_manager") + private String projectManager; + private String descn; + @TableField("createtime") + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getProjectManager() { + return projectManager; + } + + public void setProjectManager(String projectManager) { + this.projectManager = projectManager; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Project{" + + "id=" + id + + ", projectName=" + projectName + + ", projectSimpleName=" + projectSimpleName + + ", projectManager=" + projectManager + + ", descn=" + descn + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java new file mode 100644 index 0000000..658c2e1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java @@ -0,0 +1,126 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_reimburse") +public class Reimburse extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mi:ss") + @TableField("reimburse_time") + private Date reimburseTime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getReimburseTime() { + return reimburseTime; + } + + public void setReimburseTime(Date reimburseTime) { + this.reimburseTime = reimburseTime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Reimburse{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", reimburseTime=" + reimburseTime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java new file mode 100644 index 0000000..987efa7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java @@ -0,0 +1,141 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_task") +public class Task extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_id") + private Long projectId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("devmode_id") + private String devmodeId; + private Long devcount; + @TableField("delivery_time") + private Date deliveryTime; + private String demand; + private Date createtime; + @TableField(exist = false) + private String deliveryTimeFmt; + + @TableField(exist = false) + private Long taskId; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getProjectId() { + return projectId; + } + + public void setProjectId(Long projectId) { + this.projectId = projectId; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDevmodeId() { + return devmodeId; + } + + public void setDevmodeId(String devmodeId) { + this.devmodeId = devmodeId; + } + + public Long getDevcount() { + return devcount; + } + + public void setDevcount(Long devcount) { + this.devcount = devcount; + } + + public Date getDeliveryTime() { + return deliveryTime; + } + + public void setDeliveryTime(Date deliveryTime) { + this.deliveryTime = deliveryTime; + } + + public String getDemand() { + return demand; + } + + public void setDemand(String demand) { + this.demand = demand; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeliveryTimeFmt() { + return deliveryTimeFmt; + } + + public void setDeliveryTimeFmt(String deliveryTimeFmt) { + this.deliveryTimeFmt = deliveryTimeFmt; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Task{" + + "id=" + id + + ", projectId=" + projectId + + ", devtypeId=" + devtypeId + + ", devmodeId=" + devmodeId + + ", devcount=" + devcount + + ", deliveryTime=" + deliveryTime + + ", demand=" + demand + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java new file mode 100644 index 0000000..7785de5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface IAccountService extends IService { + + /** + * 根据用户名查用户 + * @param userName + * @return + */ + Account findUserByName(String userName); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java new file mode 100644 index 0000000..d8b5e87 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IContractService extends IService { + List selectPageList(Page page, String keyword1, String keyword2, String keyword3); + List reportExport(String keyword1, String keyword2, String keyword3); + void importContract( List contracts); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java new file mode 100644 index 0000000..0f2d6e0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IPaymentsService extends IService { + + boolean validate(Long proId,String money,String reorder); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java new file mode 100644 index 0000000..71490df --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -0,0 +1,62 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductDeviceTypeService extends IService { + + /** + * 批量导入设备类型列表 + * @param results + */ + void importDeviceType(List results); + + /** + * 导出列表 + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List reportExport(String keyword1,String keyword2,String keyword3); + + + /** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectPageDataScope(DataScope dataScope, Page page, + String keyword1, String keyword2, String keyword3); + + /** + * 获取在产的设备类型 + * @return + */ + List selectDeviceTypeList(); + + /** + * 根据产品型号获取产品 + * @param deviceModel + * @return + */ + ProductDeviceType selectDeviceTypeByModel(String deviceModel); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java new file mode 100644 index 0000000..455f60a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductFactoryInformationService extends IService { + /** + * 根据条件导出列表 + * @param keyword1 + * @param keyword2 + * @return + */ + List reportExport(String keyword1, String keyword2); + + + /** + * 导入 + * @param results + */ + void importDeviceType(List results); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java new file mode 100644 index 0000000..3c27bd1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface IProjectService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java new file mode 100644 index 0000000..ee0a55c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IReimburseService extends IService { + boolean validate(Long proId,String money,String reorder); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java new file mode 100644 index 0000000..09ce653 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.dao.AccountMapper; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.stereotype.Service; + +/** + *

+ * 管理员表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@Service +public class AccountServiceImpl extends ServiceImpl implements IAccountService { + + @Override + public Account findUserByName(String userName) { + + EntityWrapper userEntityWrapper = new EntityWrapper<>(); + userEntityWrapper.eq("name",userName); + userEntityWrapper.eq("status","1"); + return this.selectOne(userEntityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java new file mode 100644 index 0000000..dd04da0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java @@ -0,0 +1,138 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.shiro.ShiroUser; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ContractMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IPaymentsService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ContractServiceImpl extends ServiceImpl implements IContractService { + @Autowired + private IPaymentsService paymentsService; + @Autowired + private ICommonPermissionService permissionService; + @Autowired + private IAccountService userService; + @Value("${casic.producerName}") + private String producerName; + @Value("${casic.repairName}") + private String repairName; + + @Override + public List selectPageList(Page page, String keyword1, String keyword2, String keyword3) { + +// EntityWrapper query = new EntityWrapper<>(); +// if (ToolUtil.isNotEmpty(keyword1)) { +// query.like("contract_factory", keyword1); +// } +// if (ToolUtil.isNotEmpty(keyword3)) { +// query.like("contract_number", keyword3); +// } +// List contractList = this.selectPage(page, query).getRecords(); +// contractList.forEach(contract -> { +// contract.setPaymentStatus(getPaymentStatus(contract)); +// String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" +// + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" +// + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); +// contract.setNetFlow(netFlowStr); +// +// }); +// return contractList; + + + List contractList = new ArrayList<>(); + DataScope dataScope = permissionService.getCurrUserDataScope(); + ShiroUser currentUser = permissionService.getCurrLoginUser(); + if (currentUser.getRoleTips().contains(producerName) || currentUser.getRoleTips().contains(repairName)) { + contractList = this.baseMapper.findContractList(dataScope,page, currentUser.getName(), keyword1, keyword2, keyword3); + } else { + contractList = this.baseMapper.findContractList(dataScope,page, "", keyword1, keyword2, keyword3); + } + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + + }); + return contractList; + } + + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + + + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("contractFactory", keyword1); + } + if (ToolUtil.isNotEmpty(keyword3)) { + query.like("contract_number", keyword3); + } + + List contractList = this.selectList(query); + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); +// permissionService.findInDictByCode("applyStatus") + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + }); + + return contractList; + } + + @Override + public void importContract(List contracts) { + contracts.forEach(contract -> { + EntityWrapper query = new EntityWrapper<>(); + query.eq("contract_number", contract.getContractNumber()); + this.delete(query); + Account user = userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); + this.insert(contract); + }); + } + + public String getPaymentStatus(Contract contract) { + Map paraMap = new HashMap<>(); + paraMap.put("pro_id", contract.getId()); + List paymentsList = paymentsService.selectByMap(paraMap); + float sum = 0; + for (Payments payments : paymentsList) { + sum = sum + (ToolUtil.isNotEmpty(payments.getMoney()) ? Float.parseFloat(payments.getMoney()) : 0); + } + DecimalFormat df = new DecimalFormat("0"); + return sum + "," + df.format(100 * sum / Float.valueOf(contract.getContractAmount())) + "%"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java new file mode 100644 index 0000000..0c125d8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PaymentsMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class PaymentsServiceImpl extends ServiceImpl implements IPaymentsService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money,String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List paymentsList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Payments payments : paymentsList) { + if(reorder.equals(payments.getReorder())) continue; + total += ToolUtil.isNotEmpty(payments.getMoney()) ? + Long.valueOf(payments.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java new file mode 100644 index 0000000..ac6d447 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductDeviceTypeMapper; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.swing.text.html.parser.Entity; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductDeviceTypeServiceImpl extends ServiceImpl implements IProductDeviceTypeService { + + @Autowired + private ICommonPermissionService permissionService; + + @Transactional(rollbackFor = Exception.class) + @Override + public void importDeviceType(List results) { + + for (ProductDeviceType productDeviceType : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + this.baseMapper.delete(wrapper); + this.baseMapper.insert(productDeviceType); + } + } + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + wrapper.like("principal", keyword3); + } + List productDeviceTypes = this.selectList(wrapper); + for (ProductDeviceType productDeviceType : productDeviceTypes) { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + } + return productDeviceTypes; + } + + @Override + public List selectPageDataScope(DataScope dataScope, Page page, String keyword1, String keyword2, String keyword3) { + + List productDeviceTypeList = this.baseMapper.selectDataScopePage(dataScope, page, keyword1, keyword2, keyword3); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + return productDeviceTypeList; + + } + + @Override + public List selectDeviceTypeList() { + return this.baseMapper.selectDeviceTypeList(); + } + + + @Override + public ProductDeviceType selectDeviceTypeByModel(String deviceModel) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("product_model",deviceModel); + return this.selectOne(entityWrapper); + } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java new file mode 100644 index 0000000..4670df3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 集中器相关日志 + */ +public class ProjectDict extends AbstractDictMap { + public static final String PROJECT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + @Override + public void init() { + put("projectName","项目名称"); + put("projectSimpleName","项目简称"); + put("projectManager","项目经理"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java new file mode 100644 index 0000000..7981a17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dto; + +/** + * 用于设备类型展示 + * @author test203 + * @date 2020-04-03 + */ +public class DeviceTypeDto { + private Long id; + private String productName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java new file mode 100644 index 0000000..f254585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java @@ -0,0 +1,361 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.math.BigDecimal; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; + +/** + *

+ * 管理员表 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@TableName("sys_user") +public class Account extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + /** + * 头像 + */ + private String avatar; + /** + * 账号 + */ + private String account; + /** + * 密码 + */ + private String password; + /** + * md5密码盐 + */ + private String salt; + /** + * 名字 + */ + private String name; + /** + * 生日 + */ + private Date birthday; + /** + * 性别(1:男 2:女) + */ + private String sex; + /** + * 电子邮件 + */ + private String email; + /** + * 电话 + */ + private String phone; + /** + * 角色id + */ + private String roleid; + /** + * 部门id + */ + private Long deptid; + /** + * 状态(1:启用 2:冻结 3:删除) + */ + private String status; + /** + * 创建时间 + */ + private Date createtime; + /** + * 保留字段 + */ + private Integer version; + private String targetid; + private String targetname; + @TableField("password_sync") + private String passwordSync; + @TableField("IS_SYNC") + private Integer isSync; + private String simplename; + /** + * 同步组织ID + */ + @TableField("TARGET_DEPTID_SYNC") + private String targetDeptidSync; + @TableField("LOGIN_IP") + private String loginIp; + @TableField("LOGIN_MAC") + private String loginMac; + /** + * 最后在线时间 + */ + @TableField("LAST_TIME") + private Date lastTime; + /** + * 经度 + */ + @TableField("POSITION_LNG") + private BigDecimal positionLng; + /** + * 纬度 + */ + @TableField("POSITION_LAT") + private BigDecimal positionLat; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt() { + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getRoleid() { + return roleid; + } + + public void setRoleid(String roleid) { + this.roleid = roleid; + } + + public Long getDeptid() { + return deptid; + } + + public void setDeptid(Long deptid) { + this.deptid = deptid; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + public String getTargetid() { + return targetid; + } + + public void setTargetid(String targetid) { + this.targetid = targetid; + } + + public String getTargetname() { + return targetname; + } + + public void setTargetname(String targetname) { + this.targetname = targetname; + } + + public String getPasswordSync() { + return passwordSync; + } + + public void setPasswordSync(String passwordSync) { + this.passwordSync = passwordSync; + } + + public Integer getIsSync() { + return isSync; + } + + public void setIsSync(Integer isSync) { + this.isSync = isSync; + } + + public String getSimplename() { + return simplename; + } + + public void setSimplename(String simplename) { + this.simplename = simplename; + } + + public String getTargetDeptidSync() { + return targetDeptidSync; + } + + public void setTargetDeptidSync(String targetDeptidSync) { + this.targetDeptidSync = targetDeptidSync; + } + + public String getLoginIp() { + return loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getLoginMac() { + return loginMac; + } + + public void setLoginMac(String loginMac) { + this.loginMac = loginMac; + } + + public Date getLastTime() { + return lastTime; + } + + public void setLastTime(Date lastTime) { + this.lastTime = lastTime; + } + + public BigDecimal getPositionLng() { + return positionLng; + } + + public void setPositionLng(BigDecimal positionLng) { + this.positionLng = positionLng; + } + + public BigDecimal getPositionLat() { + return positionLat; + } + + public void setPositionLat(BigDecimal positionLat) { + this.positionLat = positionLat; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", avatar=" + avatar + + ", account=" + account + + ", password=" + password + + ", salt=" + salt + + ", name=" + name + + ", birthday=" + birthday + + ", sex=" + sex + + ", email=" + email + + ", phone=" + phone + + ", roleid=" + roleid + + ", deptid=" + deptid + + ", status=" + status + + ", createtime=" + createtime + + ", version=" + version + + ", targetid=" + targetid + + ", targetname=" + targetname + + ", passwordSync=" + passwordSync + + ", isSync=" + isSync + + ", simplename=" + simplename + + ", targetDeptidSync=" + targetDeptidSync + + ", loginIp=" + loginIp + + ", loginMac=" + loginMac + + ", lastTime=" + lastTime + + ", positionLng=" + positionLng + + ", positionLat=" + positionLat + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java new file mode 100644 index 0000000..81516b7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -0,0 +1,110 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_batch") +public class Batch extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_number") + private Long batchNumber; + @TableField("batch_count") + private Long batchCount; + @TableField("contract_id") + private Long contractId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("task_id") + private Long taskId; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(Long batchNumber) { + this.batchNumber = batchNumber; + } + + public Long getBatchCount() { + return batchCount; + } + + public void setBatchCount(Long batchCount) { + this.batchCount = batchCount; + } + + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Batch{" + + "id=" + id + + ", batchNumber=" + batchNumber + + ", batchCount=" + batchCount + + ", contractId=" + contractId + + ", taskId=" + taskId + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java new file mode 100644 index 0000000..893a1ed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -0,0 +1,186 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_contract") +public class Contract extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("contract_number") + private String contractNumber; + @TableField("contract_name") + private String contractName; + @TableField("contract_content") + private String contractContent; + @TableField("contract_amount") + private String contractAmount; + @TableField("external_project_apply") + private String externalProjectApply; + @TableField("external_contract_apply") + private String externalContractApply; + @TableField("principal") + private String principal; + @TableField("external_check_apply") + private String externalCheckApply; + @TableField("contract_factory") + private String contractFactory; + @TableField("createtime") + private Date createtime; + @TableField(exist = false) + private String paymentStatus; + @TableField(exist = false) + private String netFlow; + @TableField("deptid") + private String deptid; + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getContractName() { + return contractName; + } + + public void setContractName(String contractName) { + this.contractName = contractName; + } + + public String getContractContent() { + return contractContent; + } + + public void setContractContent(String contractContent) { + this.contractContent = contractContent; + } + + public String getContractAmount() { + return contractAmount; + } + + public void setContractAmount(String contractAmount) { + this.contractAmount = contractAmount; + } + + public String getExternalProjectApply() { + return externalProjectApply; + } + + public void setExternalProjectApply(String externalProjectApply) { + this.externalProjectApply = externalProjectApply; + } + + public String getExternalContractApply() { + return externalContractApply; + } + + public void setExternalContractApply(String externalContractApply) { + this.externalContractApply = externalContractApply; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalCheckApply() { + return externalCheckApply; + } + + public void setExternalCheckApply(String externalCheckApply) { + this.externalCheckApply = externalCheckApply; + } + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public String getContractFactory() { + return contractFactory; + } + + public void setContractFactory(String contractFactory) { + this.contractFactory = contractFactory; + } + + public String getNetFlow() { + return netFlow; + } + + public void setNetFlow(String netFlow) { + this.netFlow = netFlow; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Contract{" + + "contractNumber=" + contractNumber + + ", contractName=" + contractName + + ", contractContent=" + contractContent + + ", contractAmount=" + contractAmount + + ", externalProjectApply=" + externalProjectApply + + ", externalContractApply=" + externalContractApply + + ", principal=" + principal + + ", id=" + id + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java new file mode 100644 index 0000000..8718d91 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -0,0 +1,150 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_device") +public class Device extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_id") + private Long batchId; + private String devcode; + @TableField("devtype_id") + private Long devtypeId; + @TableField("is_send") + private String isSend; + private String longitude; + private String latitude; + @TableField("install_height") + private String installHeight; + private String iccid; + private Long imei; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public Long getImei() { + return imei; + } + + public void setImei(Long imei) { + this.imei = imei; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Device{" + + "id=" + id + + ", batchId=" + batchId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", isSend=" + isSend + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", installHeight=" + installHeight + + ", iccid=" + iccid + + ", imei=" + imei + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java new file mode 100644 index 0000000..870c36f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_payments") +public class Payments extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @TableField("paytime") + private Date paytime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getPaytime() { + return paytime; + } + + public void setPaytime(Date paytime) { + this.paytime = paytime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Payments{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", paytime=" + paytime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java new file mode 100644 index 0000000..ae6b585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -0,0 +1,285 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_device_type") +public class ProductDeviceType extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 产品名称 + */ + @TableField("product_name") + private String productName; + /** + * 产品型号 + */ + @TableField("product_model") + private String productModel; + + /** + * 通讯版本号 + */ + @TableField("communication_version") + private String communicationVersion; + + /** + * 产品类型 + */ + @TableField("product_type") + private String productType; + + /** + * 整机版本号 + */ + @TableField("machine_version") + private String machineVersion; + /** + * 硬件版本号 + */ + @TableField("hardware_version") + private String hardwareVersion; + /** + * 软件版本号 + */ + @TableField("software_version") + private String softwareVersion; + /** + * 设计归档 + */ + @TableField("design_archive") + private String designArchive; + /** + * 批产归档 + */ + @TableField("batch_filing") + private String batchFiling; + /** + * 状态 + */ + @TableField("status") + private Integer status; + /** + * 性能指标 + */ + @TableField("kpi") + private String kpi; + /** + * 批产负责人 + */ + @TableField("principal") + private String principal; + /** + * 定额汇总表 + */ + @TableField("quota_summary") + private String quotaSummary; + + /** + * 权属部门 + */ + @TableField("deptid") + private String deptid; + + /** + * 备注 + */ + @TableField("descn") + private String descn; + + @TableField("createtime") + private Date createtime; + + + @TableField(exist = false) + private String statusFmt; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } + + public String getMachineVersion() { + return machineVersion; + } + + public void setMachineVersion(String machineVersion) { + this.machineVersion = machineVersion; + } + + public String getHardwareVersion() { + return hardwareVersion; + } + + public void setHardwareVersion(String hardwareVersion) { + this.hardwareVersion = hardwareVersion; + } + + public String getSoftwareVersion() { + return softwareVersion; + } + + public void setSoftwareVersion(String softwareVersion) { + this.softwareVersion = softwareVersion; + } + + public String getDesignArchive() { + return designArchive; + } + + public void setDesignArchive(String designArchive) { + this.designArchive = designArchive; + } + + public String getBatchFiling() { + return batchFiling; + } + + public void setBatchFiling(String batchFiling) { + this.batchFiling = batchFiling; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getKpi() { + return kpi; + } + + public void setKpi(String kpi) { + this.kpi = kpi; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public String getQuotaSummary() { + return quotaSummary; + } + + public void setQuotaSummary(String quotaSummary) { + this.quotaSummary = quotaSummary; + } + + public String getStatusFmt() { + return statusFmt; + } + + public void setStatusFmt(String statusFmt) { + this.statusFmt = statusFmt; + } + + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getProductType() { + return productType; + } + + public void setProductType(String productType) { + this.productType = productType; + } + + public String getCommunicationVersion() { + return communicationVersion; + } + + public void setCommunicationVersion(String communicationVersion) { + this.communicationVersion = communicationVersion; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductDeviceType{" + + "id=" + id + + ", productName=" + productName + + ", productModel=" + productModel + + ", machineVersion=" + machineVersion + + ", hardwareVersion=" + hardwareVersion + + ", softwareVersion=" + softwareVersion + + ", designArchive=" + designArchive + + ", batchFiling=" + batchFiling + + ", status=" + status + + ", kpi=" + kpi + + ", principal=" + principal + + ", quotaSummary=" + quotaSummary + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java new file mode 100644 index 0000000..b0fd924 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java @@ -0,0 +1,187 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_factory_information") +public class ProductFactoryInformation extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 厂家名称 + */ + @TableField("name") + private String name; + /** + * 厂家联系人 + */ + @TableField("person_name") + private String personName; + /** + * 地址 + */ + @TableField("address") + private String address; + /** + * 电话 + */ + @TableField("phone") + private String phone; + /** + * 开户行 + */ + @TableField("bank") + private String bank; + /** + * 税号 + */ + @TableField("tax_number") + private String taxNumber; + /** + * 在产设备 + */ + @TableField("producting_device") + private String productingDevice; + /** + * 设备报价表 + */ + @TableField("equipment_quotation") + private String equipmentQuotation; + + @TableField("createtime") + private Date createtime =new Date(); + + @TableField("deptid") + private String deptid; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPersonName() { + return personName; + } + + public void setPersonName(String personName) { + this.personName = personName; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getBank() { + return bank; + } + + public void setBank(String bank) { + this.bank = bank; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getProductingDevice() { + return productingDevice; + } + + public void setProductingDevice(String productingDevice) { + this.productingDevice = productingDevice; + } + + public String getEquipmentQuotation() { + return equipmentQuotation; + } + + public void setEquipmentQuotation(String equipmentQuotation) { + this.equipmentQuotation = equipmentQuotation; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductFactoryInformation{" + + "id=" + id + + ", name=" + name + + ", personName=" + personName + + ", address=" + address + + ", phone=" + phone + + ", bank=" + bank + + ", taxNumber=" + taxNumber + + ", productingDevice=" + productingDevice + + ", equipmentQuotation=" + equipmentQuotation + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java new file mode 100644 index 0000000..00cbc92 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -0,0 +1,99 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@TableName("product_project") +public class Project extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_name") + private String projectName; + @TableField("project_simple_name") + private String projectSimpleName; + @TableField("project_manager") + private String projectManager; + private String descn; + @TableField("createtime") + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getProjectManager() { + return projectManager; + } + + public void setProjectManager(String projectManager) { + this.projectManager = projectManager; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Project{" + + "id=" + id + + ", projectName=" + projectName + + ", projectSimpleName=" + projectSimpleName + + ", projectManager=" + projectManager + + ", descn=" + descn + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java new file mode 100644 index 0000000..658c2e1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java @@ -0,0 +1,126 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_reimburse") +public class Reimburse extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mi:ss") + @TableField("reimburse_time") + private Date reimburseTime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getReimburseTime() { + return reimburseTime; + } + + public void setReimburseTime(Date reimburseTime) { + this.reimburseTime = reimburseTime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Reimburse{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", reimburseTime=" + reimburseTime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java new file mode 100644 index 0000000..987efa7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java @@ -0,0 +1,141 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_task") +public class Task extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_id") + private Long projectId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("devmode_id") + private String devmodeId; + private Long devcount; + @TableField("delivery_time") + private Date deliveryTime; + private String demand; + private Date createtime; + @TableField(exist = false) + private String deliveryTimeFmt; + + @TableField(exist = false) + private Long taskId; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getProjectId() { + return projectId; + } + + public void setProjectId(Long projectId) { + this.projectId = projectId; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDevmodeId() { + return devmodeId; + } + + public void setDevmodeId(String devmodeId) { + this.devmodeId = devmodeId; + } + + public Long getDevcount() { + return devcount; + } + + public void setDevcount(Long devcount) { + this.devcount = devcount; + } + + public Date getDeliveryTime() { + return deliveryTime; + } + + public void setDeliveryTime(Date deliveryTime) { + this.deliveryTime = deliveryTime; + } + + public String getDemand() { + return demand; + } + + public void setDemand(String demand) { + this.demand = demand; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeliveryTimeFmt() { + return deliveryTimeFmt; + } + + public void setDeliveryTimeFmt(String deliveryTimeFmt) { + this.deliveryTimeFmt = deliveryTimeFmt; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Task{" + + "id=" + id + + ", projectId=" + projectId + + ", devtypeId=" + devtypeId + + ", devmodeId=" + devmodeId + + ", devcount=" + devcount + + ", deliveryTime=" + deliveryTime + + ", demand=" + demand + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java new file mode 100644 index 0000000..7785de5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface IAccountService extends IService { + + /** + * 根据用户名查用户 + * @param userName + * @return + */ + Account findUserByName(String userName); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java new file mode 100644 index 0000000..d8b5e87 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IContractService extends IService { + List selectPageList(Page page, String keyword1, String keyword2, String keyword3); + List reportExport(String keyword1, String keyword2, String keyword3); + void importContract( List contracts); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java new file mode 100644 index 0000000..0f2d6e0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IPaymentsService extends IService { + + boolean validate(Long proId,String money,String reorder); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java new file mode 100644 index 0000000..71490df --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -0,0 +1,62 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductDeviceTypeService extends IService { + + /** + * 批量导入设备类型列表 + * @param results + */ + void importDeviceType(List results); + + /** + * 导出列表 + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List reportExport(String keyword1,String keyword2,String keyword3); + + + /** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectPageDataScope(DataScope dataScope, Page page, + String keyword1, String keyword2, String keyword3); + + /** + * 获取在产的设备类型 + * @return + */ + List selectDeviceTypeList(); + + /** + * 根据产品型号获取产品 + * @param deviceModel + * @return + */ + ProductDeviceType selectDeviceTypeByModel(String deviceModel); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java new file mode 100644 index 0000000..455f60a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductFactoryInformationService extends IService { + /** + * 根据条件导出列表 + * @param keyword1 + * @param keyword2 + * @return + */ + List reportExport(String keyword1, String keyword2); + + + /** + * 导入 + * @param results + */ + void importDeviceType(List results); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java new file mode 100644 index 0000000..3c27bd1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface IProjectService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java new file mode 100644 index 0000000..ee0a55c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IReimburseService extends IService { + boolean validate(Long proId,String money,String reorder); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java new file mode 100644 index 0000000..09ce653 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.dao.AccountMapper; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.stereotype.Service; + +/** + *

+ * 管理员表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@Service +public class AccountServiceImpl extends ServiceImpl implements IAccountService { + + @Override + public Account findUserByName(String userName) { + + EntityWrapper userEntityWrapper = new EntityWrapper<>(); + userEntityWrapper.eq("name",userName); + userEntityWrapper.eq("status","1"); + return this.selectOne(userEntityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java new file mode 100644 index 0000000..dd04da0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java @@ -0,0 +1,138 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.shiro.ShiroUser; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ContractMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IPaymentsService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ContractServiceImpl extends ServiceImpl implements IContractService { + @Autowired + private IPaymentsService paymentsService; + @Autowired + private ICommonPermissionService permissionService; + @Autowired + private IAccountService userService; + @Value("${casic.producerName}") + private String producerName; + @Value("${casic.repairName}") + private String repairName; + + @Override + public List selectPageList(Page page, String keyword1, String keyword2, String keyword3) { + +// EntityWrapper query = new EntityWrapper<>(); +// if (ToolUtil.isNotEmpty(keyword1)) { +// query.like("contract_factory", keyword1); +// } +// if (ToolUtil.isNotEmpty(keyword3)) { +// query.like("contract_number", keyword3); +// } +// List contractList = this.selectPage(page, query).getRecords(); +// contractList.forEach(contract -> { +// contract.setPaymentStatus(getPaymentStatus(contract)); +// String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" +// + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" +// + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); +// contract.setNetFlow(netFlowStr); +// +// }); +// return contractList; + + + List contractList = new ArrayList<>(); + DataScope dataScope = permissionService.getCurrUserDataScope(); + ShiroUser currentUser = permissionService.getCurrLoginUser(); + if (currentUser.getRoleTips().contains(producerName) || currentUser.getRoleTips().contains(repairName)) { + contractList = this.baseMapper.findContractList(dataScope,page, currentUser.getName(), keyword1, keyword2, keyword3); + } else { + contractList = this.baseMapper.findContractList(dataScope,page, "", keyword1, keyword2, keyword3); + } + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + + }); + return contractList; + } + + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + + + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("contractFactory", keyword1); + } + if (ToolUtil.isNotEmpty(keyword3)) { + query.like("contract_number", keyword3); + } + + List contractList = this.selectList(query); + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); +// permissionService.findInDictByCode("applyStatus") + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + }); + + return contractList; + } + + @Override + public void importContract(List contracts) { + contracts.forEach(contract -> { + EntityWrapper query = new EntityWrapper<>(); + query.eq("contract_number", contract.getContractNumber()); + this.delete(query); + Account user = userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); + this.insert(contract); + }); + } + + public String getPaymentStatus(Contract contract) { + Map paraMap = new HashMap<>(); + paraMap.put("pro_id", contract.getId()); + List paymentsList = paymentsService.selectByMap(paraMap); + float sum = 0; + for (Payments payments : paymentsList) { + sum = sum + (ToolUtil.isNotEmpty(payments.getMoney()) ? Float.parseFloat(payments.getMoney()) : 0); + } + DecimalFormat df = new DecimalFormat("0"); + return sum + "," + df.format(100 * sum / Float.valueOf(contract.getContractAmount())) + "%"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java new file mode 100644 index 0000000..0c125d8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PaymentsMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class PaymentsServiceImpl extends ServiceImpl implements IPaymentsService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money,String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List paymentsList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Payments payments : paymentsList) { + if(reorder.equals(payments.getReorder())) continue; + total += ToolUtil.isNotEmpty(payments.getMoney()) ? + Long.valueOf(payments.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java new file mode 100644 index 0000000..ac6d447 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductDeviceTypeMapper; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.swing.text.html.parser.Entity; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductDeviceTypeServiceImpl extends ServiceImpl implements IProductDeviceTypeService { + + @Autowired + private ICommonPermissionService permissionService; + + @Transactional(rollbackFor = Exception.class) + @Override + public void importDeviceType(List results) { + + for (ProductDeviceType productDeviceType : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + this.baseMapper.delete(wrapper); + this.baseMapper.insert(productDeviceType); + } + } + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + wrapper.like("principal", keyword3); + } + List productDeviceTypes = this.selectList(wrapper); + for (ProductDeviceType productDeviceType : productDeviceTypes) { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + } + return productDeviceTypes; + } + + @Override + public List selectPageDataScope(DataScope dataScope, Page page, String keyword1, String keyword2, String keyword3) { + + List productDeviceTypeList = this.baseMapper.selectDataScopePage(dataScope, page, keyword1, keyword2, keyword3); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + return productDeviceTypeList; + + } + + @Override + public List selectDeviceTypeList() { + return this.baseMapper.selectDeviceTypeList(); + } + + + @Override + public ProductDeviceType selectDeviceTypeByModel(String deviceModel) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("product_model",deviceModel); + return this.selectOne(entityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java new file mode 100644 index 0000000..efe4410 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java @@ -0,0 +1,50 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductFactoryInformationMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductFactoryInformationServiceImpl extends ServiceImpl implements IProductFactoryInformationService { + + @Override + public List reportExport(String keyword1, String keyword2) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.like("producting_device", keyword2); + } + List productFactoryInformations = this.selectList(wrapper); + + return productFactoryInformations; + } + + + @Transactional(rollbackFor=Exception.class) + @Override + public void importDeviceType(List results) { + for (ProductFactoryInformation productFactoryInformation : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + delete(wrapper); + this.baseMapper.insert(productFactoryInformation); + } + } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java new file mode 100644 index 0000000..4670df3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 集中器相关日志 + */ +public class ProjectDict extends AbstractDictMap { + public static final String PROJECT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + @Override + public void init() { + put("projectName","项目名称"); + put("projectSimpleName","项目简称"); + put("projectManager","项目经理"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java new file mode 100644 index 0000000..7981a17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dto; + +/** + * 用于设备类型展示 + * @author test203 + * @date 2020-04-03 + */ +public class DeviceTypeDto { + private Long id; + private String productName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java new file mode 100644 index 0000000..f254585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java @@ -0,0 +1,361 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.math.BigDecimal; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; + +/** + *

+ * 管理员表 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@TableName("sys_user") +public class Account extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + /** + * 头像 + */ + private String avatar; + /** + * 账号 + */ + private String account; + /** + * 密码 + */ + private String password; + /** + * md5密码盐 + */ + private String salt; + /** + * 名字 + */ + private String name; + /** + * 生日 + */ + private Date birthday; + /** + * 性别(1:男 2:女) + */ + private String sex; + /** + * 电子邮件 + */ + private String email; + /** + * 电话 + */ + private String phone; + /** + * 角色id + */ + private String roleid; + /** + * 部门id + */ + private Long deptid; + /** + * 状态(1:启用 2:冻结 3:删除) + */ + private String status; + /** + * 创建时间 + */ + private Date createtime; + /** + * 保留字段 + */ + private Integer version; + private String targetid; + private String targetname; + @TableField("password_sync") + private String passwordSync; + @TableField("IS_SYNC") + private Integer isSync; + private String simplename; + /** + * 同步组织ID + */ + @TableField("TARGET_DEPTID_SYNC") + private String targetDeptidSync; + @TableField("LOGIN_IP") + private String loginIp; + @TableField("LOGIN_MAC") + private String loginMac; + /** + * 最后在线时间 + */ + @TableField("LAST_TIME") + private Date lastTime; + /** + * 经度 + */ + @TableField("POSITION_LNG") + private BigDecimal positionLng; + /** + * 纬度 + */ + @TableField("POSITION_LAT") + private BigDecimal positionLat; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt() { + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getRoleid() { + return roleid; + } + + public void setRoleid(String roleid) { + this.roleid = roleid; + } + + public Long getDeptid() { + return deptid; + } + + public void setDeptid(Long deptid) { + this.deptid = deptid; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + public String getTargetid() { + return targetid; + } + + public void setTargetid(String targetid) { + this.targetid = targetid; + } + + public String getTargetname() { + return targetname; + } + + public void setTargetname(String targetname) { + this.targetname = targetname; + } + + public String getPasswordSync() { + return passwordSync; + } + + public void setPasswordSync(String passwordSync) { + this.passwordSync = passwordSync; + } + + public Integer getIsSync() { + return isSync; + } + + public void setIsSync(Integer isSync) { + this.isSync = isSync; + } + + public String getSimplename() { + return simplename; + } + + public void setSimplename(String simplename) { + this.simplename = simplename; + } + + public String getTargetDeptidSync() { + return targetDeptidSync; + } + + public void setTargetDeptidSync(String targetDeptidSync) { + this.targetDeptidSync = targetDeptidSync; + } + + public String getLoginIp() { + return loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getLoginMac() { + return loginMac; + } + + public void setLoginMac(String loginMac) { + this.loginMac = loginMac; + } + + public Date getLastTime() { + return lastTime; + } + + public void setLastTime(Date lastTime) { + this.lastTime = lastTime; + } + + public BigDecimal getPositionLng() { + return positionLng; + } + + public void setPositionLng(BigDecimal positionLng) { + this.positionLng = positionLng; + } + + public BigDecimal getPositionLat() { + return positionLat; + } + + public void setPositionLat(BigDecimal positionLat) { + this.positionLat = positionLat; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", avatar=" + avatar + + ", account=" + account + + ", password=" + password + + ", salt=" + salt + + ", name=" + name + + ", birthday=" + birthday + + ", sex=" + sex + + ", email=" + email + + ", phone=" + phone + + ", roleid=" + roleid + + ", deptid=" + deptid + + ", status=" + status + + ", createtime=" + createtime + + ", version=" + version + + ", targetid=" + targetid + + ", targetname=" + targetname + + ", passwordSync=" + passwordSync + + ", isSync=" + isSync + + ", simplename=" + simplename + + ", targetDeptidSync=" + targetDeptidSync + + ", loginIp=" + loginIp + + ", loginMac=" + loginMac + + ", lastTime=" + lastTime + + ", positionLng=" + positionLng + + ", positionLat=" + positionLat + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java new file mode 100644 index 0000000..81516b7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -0,0 +1,110 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_batch") +public class Batch extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_number") + private Long batchNumber; + @TableField("batch_count") + private Long batchCount; + @TableField("contract_id") + private Long contractId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("task_id") + private Long taskId; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(Long batchNumber) { + this.batchNumber = batchNumber; + } + + public Long getBatchCount() { + return batchCount; + } + + public void setBatchCount(Long batchCount) { + this.batchCount = batchCount; + } + + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Batch{" + + "id=" + id + + ", batchNumber=" + batchNumber + + ", batchCount=" + batchCount + + ", contractId=" + contractId + + ", taskId=" + taskId + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java new file mode 100644 index 0000000..893a1ed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -0,0 +1,186 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_contract") +public class Contract extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("contract_number") + private String contractNumber; + @TableField("contract_name") + private String contractName; + @TableField("contract_content") + private String contractContent; + @TableField("contract_amount") + private String contractAmount; + @TableField("external_project_apply") + private String externalProjectApply; + @TableField("external_contract_apply") + private String externalContractApply; + @TableField("principal") + private String principal; + @TableField("external_check_apply") + private String externalCheckApply; + @TableField("contract_factory") + private String contractFactory; + @TableField("createtime") + private Date createtime; + @TableField(exist = false) + private String paymentStatus; + @TableField(exist = false) + private String netFlow; + @TableField("deptid") + private String deptid; + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getContractName() { + return contractName; + } + + public void setContractName(String contractName) { + this.contractName = contractName; + } + + public String getContractContent() { + return contractContent; + } + + public void setContractContent(String contractContent) { + this.contractContent = contractContent; + } + + public String getContractAmount() { + return contractAmount; + } + + public void setContractAmount(String contractAmount) { + this.contractAmount = contractAmount; + } + + public String getExternalProjectApply() { + return externalProjectApply; + } + + public void setExternalProjectApply(String externalProjectApply) { + this.externalProjectApply = externalProjectApply; + } + + public String getExternalContractApply() { + return externalContractApply; + } + + public void setExternalContractApply(String externalContractApply) { + this.externalContractApply = externalContractApply; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalCheckApply() { + return externalCheckApply; + } + + public void setExternalCheckApply(String externalCheckApply) { + this.externalCheckApply = externalCheckApply; + } + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public String getContractFactory() { + return contractFactory; + } + + public void setContractFactory(String contractFactory) { + this.contractFactory = contractFactory; + } + + public String getNetFlow() { + return netFlow; + } + + public void setNetFlow(String netFlow) { + this.netFlow = netFlow; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Contract{" + + "contractNumber=" + contractNumber + + ", contractName=" + contractName + + ", contractContent=" + contractContent + + ", contractAmount=" + contractAmount + + ", externalProjectApply=" + externalProjectApply + + ", externalContractApply=" + externalContractApply + + ", principal=" + principal + + ", id=" + id + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java new file mode 100644 index 0000000..8718d91 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -0,0 +1,150 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_device") +public class Device extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_id") + private Long batchId; + private String devcode; + @TableField("devtype_id") + private Long devtypeId; + @TableField("is_send") + private String isSend; + private String longitude; + private String latitude; + @TableField("install_height") + private String installHeight; + private String iccid; + private Long imei; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public Long getImei() { + return imei; + } + + public void setImei(Long imei) { + this.imei = imei; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Device{" + + "id=" + id + + ", batchId=" + batchId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", isSend=" + isSend + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", installHeight=" + installHeight + + ", iccid=" + iccid + + ", imei=" + imei + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java new file mode 100644 index 0000000..870c36f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_payments") +public class Payments extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @TableField("paytime") + private Date paytime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getPaytime() { + return paytime; + } + + public void setPaytime(Date paytime) { + this.paytime = paytime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Payments{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", paytime=" + paytime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java new file mode 100644 index 0000000..ae6b585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -0,0 +1,285 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_device_type") +public class ProductDeviceType extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 产品名称 + */ + @TableField("product_name") + private String productName; + /** + * 产品型号 + */ + @TableField("product_model") + private String productModel; + + /** + * 通讯版本号 + */ + @TableField("communication_version") + private String communicationVersion; + + /** + * 产品类型 + */ + @TableField("product_type") + private String productType; + + /** + * 整机版本号 + */ + @TableField("machine_version") + private String machineVersion; + /** + * 硬件版本号 + */ + @TableField("hardware_version") + private String hardwareVersion; + /** + * 软件版本号 + */ + @TableField("software_version") + private String softwareVersion; + /** + * 设计归档 + */ + @TableField("design_archive") + private String designArchive; + /** + * 批产归档 + */ + @TableField("batch_filing") + private String batchFiling; + /** + * 状态 + */ + @TableField("status") + private Integer status; + /** + * 性能指标 + */ + @TableField("kpi") + private String kpi; + /** + * 批产负责人 + */ + @TableField("principal") + private String principal; + /** + * 定额汇总表 + */ + @TableField("quota_summary") + private String quotaSummary; + + /** + * 权属部门 + */ + @TableField("deptid") + private String deptid; + + /** + * 备注 + */ + @TableField("descn") + private String descn; + + @TableField("createtime") + private Date createtime; + + + @TableField(exist = false) + private String statusFmt; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } + + public String getMachineVersion() { + return machineVersion; + } + + public void setMachineVersion(String machineVersion) { + this.machineVersion = machineVersion; + } + + public String getHardwareVersion() { + return hardwareVersion; + } + + public void setHardwareVersion(String hardwareVersion) { + this.hardwareVersion = hardwareVersion; + } + + public String getSoftwareVersion() { + return softwareVersion; + } + + public void setSoftwareVersion(String softwareVersion) { + this.softwareVersion = softwareVersion; + } + + public String getDesignArchive() { + return designArchive; + } + + public void setDesignArchive(String designArchive) { + this.designArchive = designArchive; + } + + public String getBatchFiling() { + return batchFiling; + } + + public void setBatchFiling(String batchFiling) { + this.batchFiling = batchFiling; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getKpi() { + return kpi; + } + + public void setKpi(String kpi) { + this.kpi = kpi; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public String getQuotaSummary() { + return quotaSummary; + } + + public void setQuotaSummary(String quotaSummary) { + this.quotaSummary = quotaSummary; + } + + public String getStatusFmt() { + return statusFmt; + } + + public void setStatusFmt(String statusFmt) { + this.statusFmt = statusFmt; + } + + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getProductType() { + return productType; + } + + public void setProductType(String productType) { + this.productType = productType; + } + + public String getCommunicationVersion() { + return communicationVersion; + } + + public void setCommunicationVersion(String communicationVersion) { + this.communicationVersion = communicationVersion; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductDeviceType{" + + "id=" + id + + ", productName=" + productName + + ", productModel=" + productModel + + ", machineVersion=" + machineVersion + + ", hardwareVersion=" + hardwareVersion + + ", softwareVersion=" + softwareVersion + + ", designArchive=" + designArchive + + ", batchFiling=" + batchFiling + + ", status=" + status + + ", kpi=" + kpi + + ", principal=" + principal + + ", quotaSummary=" + quotaSummary + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java new file mode 100644 index 0000000..b0fd924 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java @@ -0,0 +1,187 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_factory_information") +public class ProductFactoryInformation extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 厂家名称 + */ + @TableField("name") + private String name; + /** + * 厂家联系人 + */ + @TableField("person_name") + private String personName; + /** + * 地址 + */ + @TableField("address") + private String address; + /** + * 电话 + */ + @TableField("phone") + private String phone; + /** + * 开户行 + */ + @TableField("bank") + private String bank; + /** + * 税号 + */ + @TableField("tax_number") + private String taxNumber; + /** + * 在产设备 + */ + @TableField("producting_device") + private String productingDevice; + /** + * 设备报价表 + */ + @TableField("equipment_quotation") + private String equipmentQuotation; + + @TableField("createtime") + private Date createtime =new Date(); + + @TableField("deptid") + private String deptid; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPersonName() { + return personName; + } + + public void setPersonName(String personName) { + this.personName = personName; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getBank() { + return bank; + } + + public void setBank(String bank) { + this.bank = bank; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getProductingDevice() { + return productingDevice; + } + + public void setProductingDevice(String productingDevice) { + this.productingDevice = productingDevice; + } + + public String getEquipmentQuotation() { + return equipmentQuotation; + } + + public void setEquipmentQuotation(String equipmentQuotation) { + this.equipmentQuotation = equipmentQuotation; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductFactoryInformation{" + + "id=" + id + + ", name=" + name + + ", personName=" + personName + + ", address=" + address + + ", phone=" + phone + + ", bank=" + bank + + ", taxNumber=" + taxNumber + + ", productingDevice=" + productingDevice + + ", equipmentQuotation=" + equipmentQuotation + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java new file mode 100644 index 0000000..00cbc92 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -0,0 +1,99 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@TableName("product_project") +public class Project extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_name") + private String projectName; + @TableField("project_simple_name") + private String projectSimpleName; + @TableField("project_manager") + private String projectManager; + private String descn; + @TableField("createtime") + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getProjectManager() { + return projectManager; + } + + public void setProjectManager(String projectManager) { + this.projectManager = projectManager; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Project{" + + "id=" + id + + ", projectName=" + projectName + + ", projectSimpleName=" + projectSimpleName + + ", projectManager=" + projectManager + + ", descn=" + descn + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java new file mode 100644 index 0000000..658c2e1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java @@ -0,0 +1,126 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_reimburse") +public class Reimburse extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mi:ss") + @TableField("reimburse_time") + private Date reimburseTime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getReimburseTime() { + return reimburseTime; + } + + public void setReimburseTime(Date reimburseTime) { + this.reimburseTime = reimburseTime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Reimburse{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", reimburseTime=" + reimburseTime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java new file mode 100644 index 0000000..987efa7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java @@ -0,0 +1,141 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_task") +public class Task extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_id") + private Long projectId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("devmode_id") + private String devmodeId; + private Long devcount; + @TableField("delivery_time") + private Date deliveryTime; + private String demand; + private Date createtime; + @TableField(exist = false) + private String deliveryTimeFmt; + + @TableField(exist = false) + private Long taskId; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getProjectId() { + return projectId; + } + + public void setProjectId(Long projectId) { + this.projectId = projectId; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDevmodeId() { + return devmodeId; + } + + public void setDevmodeId(String devmodeId) { + this.devmodeId = devmodeId; + } + + public Long getDevcount() { + return devcount; + } + + public void setDevcount(Long devcount) { + this.devcount = devcount; + } + + public Date getDeliveryTime() { + return deliveryTime; + } + + public void setDeliveryTime(Date deliveryTime) { + this.deliveryTime = deliveryTime; + } + + public String getDemand() { + return demand; + } + + public void setDemand(String demand) { + this.demand = demand; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeliveryTimeFmt() { + return deliveryTimeFmt; + } + + public void setDeliveryTimeFmt(String deliveryTimeFmt) { + this.deliveryTimeFmt = deliveryTimeFmt; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Task{" + + "id=" + id + + ", projectId=" + projectId + + ", devtypeId=" + devtypeId + + ", devmodeId=" + devmodeId + + ", devcount=" + devcount + + ", deliveryTime=" + deliveryTime + + ", demand=" + demand + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java new file mode 100644 index 0000000..7785de5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface IAccountService extends IService { + + /** + * 根据用户名查用户 + * @param userName + * @return + */ + Account findUserByName(String userName); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java new file mode 100644 index 0000000..d8b5e87 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IContractService extends IService { + List selectPageList(Page page, String keyword1, String keyword2, String keyword3); + List reportExport(String keyword1, String keyword2, String keyword3); + void importContract( List contracts); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java new file mode 100644 index 0000000..0f2d6e0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IPaymentsService extends IService { + + boolean validate(Long proId,String money,String reorder); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java new file mode 100644 index 0000000..71490df --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -0,0 +1,62 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductDeviceTypeService extends IService { + + /** + * 批量导入设备类型列表 + * @param results + */ + void importDeviceType(List results); + + /** + * 导出列表 + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List reportExport(String keyword1,String keyword2,String keyword3); + + + /** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectPageDataScope(DataScope dataScope, Page page, + String keyword1, String keyword2, String keyword3); + + /** + * 获取在产的设备类型 + * @return + */ + List selectDeviceTypeList(); + + /** + * 根据产品型号获取产品 + * @param deviceModel + * @return + */ + ProductDeviceType selectDeviceTypeByModel(String deviceModel); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java new file mode 100644 index 0000000..455f60a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductFactoryInformationService extends IService { + /** + * 根据条件导出列表 + * @param keyword1 + * @param keyword2 + * @return + */ + List reportExport(String keyword1, String keyword2); + + + /** + * 导入 + * @param results + */ + void importDeviceType(List results); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java new file mode 100644 index 0000000..3c27bd1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface IProjectService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java new file mode 100644 index 0000000..ee0a55c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IReimburseService extends IService { + boolean validate(Long proId,String money,String reorder); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java new file mode 100644 index 0000000..09ce653 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.dao.AccountMapper; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.stereotype.Service; + +/** + *

+ * 管理员表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@Service +public class AccountServiceImpl extends ServiceImpl implements IAccountService { + + @Override + public Account findUserByName(String userName) { + + EntityWrapper userEntityWrapper = new EntityWrapper<>(); + userEntityWrapper.eq("name",userName); + userEntityWrapper.eq("status","1"); + return this.selectOne(userEntityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java new file mode 100644 index 0000000..dd04da0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java @@ -0,0 +1,138 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.shiro.ShiroUser; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ContractMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IPaymentsService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ContractServiceImpl extends ServiceImpl implements IContractService { + @Autowired + private IPaymentsService paymentsService; + @Autowired + private ICommonPermissionService permissionService; + @Autowired + private IAccountService userService; + @Value("${casic.producerName}") + private String producerName; + @Value("${casic.repairName}") + private String repairName; + + @Override + public List selectPageList(Page page, String keyword1, String keyword2, String keyword3) { + +// EntityWrapper query = new EntityWrapper<>(); +// if (ToolUtil.isNotEmpty(keyword1)) { +// query.like("contract_factory", keyword1); +// } +// if (ToolUtil.isNotEmpty(keyword3)) { +// query.like("contract_number", keyword3); +// } +// List contractList = this.selectPage(page, query).getRecords(); +// contractList.forEach(contract -> { +// contract.setPaymentStatus(getPaymentStatus(contract)); +// String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" +// + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" +// + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); +// contract.setNetFlow(netFlowStr); +// +// }); +// return contractList; + + + List contractList = new ArrayList<>(); + DataScope dataScope = permissionService.getCurrUserDataScope(); + ShiroUser currentUser = permissionService.getCurrLoginUser(); + if (currentUser.getRoleTips().contains(producerName) || currentUser.getRoleTips().contains(repairName)) { + contractList = this.baseMapper.findContractList(dataScope,page, currentUser.getName(), keyword1, keyword2, keyword3); + } else { + contractList = this.baseMapper.findContractList(dataScope,page, "", keyword1, keyword2, keyword3); + } + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + + }); + return contractList; + } + + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + + + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("contractFactory", keyword1); + } + if (ToolUtil.isNotEmpty(keyword3)) { + query.like("contract_number", keyword3); + } + + List contractList = this.selectList(query); + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); +// permissionService.findInDictByCode("applyStatus") + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + }); + + return contractList; + } + + @Override + public void importContract(List contracts) { + contracts.forEach(contract -> { + EntityWrapper query = new EntityWrapper<>(); + query.eq("contract_number", contract.getContractNumber()); + this.delete(query); + Account user = userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); + this.insert(contract); + }); + } + + public String getPaymentStatus(Contract contract) { + Map paraMap = new HashMap<>(); + paraMap.put("pro_id", contract.getId()); + List paymentsList = paymentsService.selectByMap(paraMap); + float sum = 0; + for (Payments payments : paymentsList) { + sum = sum + (ToolUtil.isNotEmpty(payments.getMoney()) ? Float.parseFloat(payments.getMoney()) : 0); + } + DecimalFormat df = new DecimalFormat("0"); + return sum + "," + df.format(100 * sum / Float.valueOf(contract.getContractAmount())) + "%"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java new file mode 100644 index 0000000..0c125d8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PaymentsMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class PaymentsServiceImpl extends ServiceImpl implements IPaymentsService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money,String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List paymentsList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Payments payments : paymentsList) { + if(reorder.equals(payments.getReorder())) continue; + total += ToolUtil.isNotEmpty(payments.getMoney()) ? + Long.valueOf(payments.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java new file mode 100644 index 0000000..ac6d447 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductDeviceTypeMapper; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.swing.text.html.parser.Entity; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductDeviceTypeServiceImpl extends ServiceImpl implements IProductDeviceTypeService { + + @Autowired + private ICommonPermissionService permissionService; + + @Transactional(rollbackFor = Exception.class) + @Override + public void importDeviceType(List results) { + + for (ProductDeviceType productDeviceType : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + this.baseMapper.delete(wrapper); + this.baseMapper.insert(productDeviceType); + } + } + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + wrapper.like("principal", keyword3); + } + List productDeviceTypes = this.selectList(wrapper); + for (ProductDeviceType productDeviceType : productDeviceTypes) { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + } + return productDeviceTypes; + } + + @Override + public List selectPageDataScope(DataScope dataScope, Page page, String keyword1, String keyword2, String keyword3) { + + List productDeviceTypeList = this.baseMapper.selectDataScopePage(dataScope, page, keyword1, keyword2, keyword3); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + return productDeviceTypeList; + + } + + @Override + public List selectDeviceTypeList() { + return this.baseMapper.selectDeviceTypeList(); + } + + + @Override + public ProductDeviceType selectDeviceTypeByModel(String deviceModel) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("product_model",deviceModel); + return this.selectOne(entityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java new file mode 100644 index 0000000..efe4410 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java @@ -0,0 +1,50 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductFactoryInformationMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductFactoryInformationServiceImpl extends ServiceImpl implements IProductFactoryInformationService { + + @Override + public List reportExport(String keyword1, String keyword2) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.like("producting_device", keyword2); + } + List productFactoryInformations = this.selectList(wrapper); + + return productFactoryInformations; + } + + + @Transactional(rollbackFor=Exception.class) + @Override + public void importDeviceType(List results) { + for (ProductFactoryInformation productFactoryInformation : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + delete(wrapper); + this.baseMapper.insert(productFactoryInformation); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java new file mode 100644 index 0000000..34655b0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.dao.ProjectMapper; +import com.casic.missiles.modular.system.service.IProjectService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@Service +public class ProjectServiceImpl extends ServiceImpl implements IProjectService { + +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java new file mode 100644 index 0000000..4670df3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 集中器相关日志 + */ +public class ProjectDict extends AbstractDictMap { + public static final String PROJECT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + @Override + public void init() { + put("projectName","项目名称"); + put("projectSimpleName","项目简称"); + put("projectManager","项目经理"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java new file mode 100644 index 0000000..7981a17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dto; + +/** + * 用于设备类型展示 + * @author test203 + * @date 2020-04-03 + */ +public class DeviceTypeDto { + private Long id; + private String productName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java new file mode 100644 index 0000000..f254585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java @@ -0,0 +1,361 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.math.BigDecimal; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; + +/** + *

+ * 管理员表 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@TableName("sys_user") +public class Account extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + /** + * 头像 + */ + private String avatar; + /** + * 账号 + */ + private String account; + /** + * 密码 + */ + private String password; + /** + * md5密码盐 + */ + private String salt; + /** + * 名字 + */ + private String name; + /** + * 生日 + */ + private Date birthday; + /** + * 性别(1:男 2:女) + */ + private String sex; + /** + * 电子邮件 + */ + private String email; + /** + * 电话 + */ + private String phone; + /** + * 角色id + */ + private String roleid; + /** + * 部门id + */ + private Long deptid; + /** + * 状态(1:启用 2:冻结 3:删除) + */ + private String status; + /** + * 创建时间 + */ + private Date createtime; + /** + * 保留字段 + */ + private Integer version; + private String targetid; + private String targetname; + @TableField("password_sync") + private String passwordSync; + @TableField("IS_SYNC") + private Integer isSync; + private String simplename; + /** + * 同步组织ID + */ + @TableField("TARGET_DEPTID_SYNC") + private String targetDeptidSync; + @TableField("LOGIN_IP") + private String loginIp; + @TableField("LOGIN_MAC") + private String loginMac; + /** + * 最后在线时间 + */ + @TableField("LAST_TIME") + private Date lastTime; + /** + * 经度 + */ + @TableField("POSITION_LNG") + private BigDecimal positionLng; + /** + * 纬度 + */ + @TableField("POSITION_LAT") + private BigDecimal positionLat; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt() { + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getRoleid() { + return roleid; + } + + public void setRoleid(String roleid) { + this.roleid = roleid; + } + + public Long getDeptid() { + return deptid; + } + + public void setDeptid(Long deptid) { + this.deptid = deptid; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + public String getTargetid() { + return targetid; + } + + public void setTargetid(String targetid) { + this.targetid = targetid; + } + + public String getTargetname() { + return targetname; + } + + public void setTargetname(String targetname) { + this.targetname = targetname; + } + + public String getPasswordSync() { + return passwordSync; + } + + public void setPasswordSync(String passwordSync) { + this.passwordSync = passwordSync; + } + + public Integer getIsSync() { + return isSync; + } + + public void setIsSync(Integer isSync) { + this.isSync = isSync; + } + + public String getSimplename() { + return simplename; + } + + public void setSimplename(String simplename) { + this.simplename = simplename; + } + + public String getTargetDeptidSync() { + return targetDeptidSync; + } + + public void setTargetDeptidSync(String targetDeptidSync) { + this.targetDeptidSync = targetDeptidSync; + } + + public String getLoginIp() { + return loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getLoginMac() { + return loginMac; + } + + public void setLoginMac(String loginMac) { + this.loginMac = loginMac; + } + + public Date getLastTime() { + return lastTime; + } + + public void setLastTime(Date lastTime) { + this.lastTime = lastTime; + } + + public BigDecimal getPositionLng() { + return positionLng; + } + + public void setPositionLng(BigDecimal positionLng) { + this.positionLng = positionLng; + } + + public BigDecimal getPositionLat() { + return positionLat; + } + + public void setPositionLat(BigDecimal positionLat) { + this.positionLat = positionLat; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", avatar=" + avatar + + ", account=" + account + + ", password=" + password + + ", salt=" + salt + + ", name=" + name + + ", birthday=" + birthday + + ", sex=" + sex + + ", email=" + email + + ", phone=" + phone + + ", roleid=" + roleid + + ", deptid=" + deptid + + ", status=" + status + + ", createtime=" + createtime + + ", version=" + version + + ", targetid=" + targetid + + ", targetname=" + targetname + + ", passwordSync=" + passwordSync + + ", isSync=" + isSync + + ", simplename=" + simplename + + ", targetDeptidSync=" + targetDeptidSync + + ", loginIp=" + loginIp + + ", loginMac=" + loginMac + + ", lastTime=" + lastTime + + ", positionLng=" + positionLng + + ", positionLat=" + positionLat + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java new file mode 100644 index 0000000..81516b7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -0,0 +1,110 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_batch") +public class Batch extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_number") + private Long batchNumber; + @TableField("batch_count") + private Long batchCount; + @TableField("contract_id") + private Long contractId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("task_id") + private Long taskId; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(Long batchNumber) { + this.batchNumber = batchNumber; + } + + public Long getBatchCount() { + return batchCount; + } + + public void setBatchCount(Long batchCount) { + this.batchCount = batchCount; + } + + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Batch{" + + "id=" + id + + ", batchNumber=" + batchNumber + + ", batchCount=" + batchCount + + ", contractId=" + contractId + + ", taskId=" + taskId + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java new file mode 100644 index 0000000..893a1ed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -0,0 +1,186 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_contract") +public class Contract extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("contract_number") + private String contractNumber; + @TableField("contract_name") + private String contractName; + @TableField("contract_content") + private String contractContent; + @TableField("contract_amount") + private String contractAmount; + @TableField("external_project_apply") + private String externalProjectApply; + @TableField("external_contract_apply") + private String externalContractApply; + @TableField("principal") + private String principal; + @TableField("external_check_apply") + private String externalCheckApply; + @TableField("contract_factory") + private String contractFactory; + @TableField("createtime") + private Date createtime; + @TableField(exist = false) + private String paymentStatus; + @TableField(exist = false) + private String netFlow; + @TableField("deptid") + private String deptid; + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getContractName() { + return contractName; + } + + public void setContractName(String contractName) { + this.contractName = contractName; + } + + public String getContractContent() { + return contractContent; + } + + public void setContractContent(String contractContent) { + this.contractContent = contractContent; + } + + public String getContractAmount() { + return contractAmount; + } + + public void setContractAmount(String contractAmount) { + this.contractAmount = contractAmount; + } + + public String getExternalProjectApply() { + return externalProjectApply; + } + + public void setExternalProjectApply(String externalProjectApply) { + this.externalProjectApply = externalProjectApply; + } + + public String getExternalContractApply() { + return externalContractApply; + } + + public void setExternalContractApply(String externalContractApply) { + this.externalContractApply = externalContractApply; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalCheckApply() { + return externalCheckApply; + } + + public void setExternalCheckApply(String externalCheckApply) { + this.externalCheckApply = externalCheckApply; + } + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public String getContractFactory() { + return contractFactory; + } + + public void setContractFactory(String contractFactory) { + this.contractFactory = contractFactory; + } + + public String getNetFlow() { + return netFlow; + } + + public void setNetFlow(String netFlow) { + this.netFlow = netFlow; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Contract{" + + "contractNumber=" + contractNumber + + ", contractName=" + contractName + + ", contractContent=" + contractContent + + ", contractAmount=" + contractAmount + + ", externalProjectApply=" + externalProjectApply + + ", externalContractApply=" + externalContractApply + + ", principal=" + principal + + ", id=" + id + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java new file mode 100644 index 0000000..8718d91 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -0,0 +1,150 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_device") +public class Device extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_id") + private Long batchId; + private String devcode; + @TableField("devtype_id") + private Long devtypeId; + @TableField("is_send") + private String isSend; + private String longitude; + private String latitude; + @TableField("install_height") + private String installHeight; + private String iccid; + private Long imei; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public Long getImei() { + return imei; + } + + public void setImei(Long imei) { + this.imei = imei; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Device{" + + "id=" + id + + ", batchId=" + batchId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", isSend=" + isSend + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", installHeight=" + installHeight + + ", iccid=" + iccid + + ", imei=" + imei + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java new file mode 100644 index 0000000..870c36f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_payments") +public class Payments extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @TableField("paytime") + private Date paytime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getPaytime() { + return paytime; + } + + public void setPaytime(Date paytime) { + this.paytime = paytime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Payments{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", paytime=" + paytime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java new file mode 100644 index 0000000..ae6b585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -0,0 +1,285 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_device_type") +public class ProductDeviceType extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 产品名称 + */ + @TableField("product_name") + private String productName; + /** + * 产品型号 + */ + @TableField("product_model") + private String productModel; + + /** + * 通讯版本号 + */ + @TableField("communication_version") + private String communicationVersion; + + /** + * 产品类型 + */ + @TableField("product_type") + private String productType; + + /** + * 整机版本号 + */ + @TableField("machine_version") + private String machineVersion; + /** + * 硬件版本号 + */ + @TableField("hardware_version") + private String hardwareVersion; + /** + * 软件版本号 + */ + @TableField("software_version") + private String softwareVersion; + /** + * 设计归档 + */ + @TableField("design_archive") + private String designArchive; + /** + * 批产归档 + */ + @TableField("batch_filing") + private String batchFiling; + /** + * 状态 + */ + @TableField("status") + private Integer status; + /** + * 性能指标 + */ + @TableField("kpi") + private String kpi; + /** + * 批产负责人 + */ + @TableField("principal") + private String principal; + /** + * 定额汇总表 + */ + @TableField("quota_summary") + private String quotaSummary; + + /** + * 权属部门 + */ + @TableField("deptid") + private String deptid; + + /** + * 备注 + */ + @TableField("descn") + private String descn; + + @TableField("createtime") + private Date createtime; + + + @TableField(exist = false) + private String statusFmt; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } + + public String getMachineVersion() { + return machineVersion; + } + + public void setMachineVersion(String machineVersion) { + this.machineVersion = machineVersion; + } + + public String getHardwareVersion() { + return hardwareVersion; + } + + public void setHardwareVersion(String hardwareVersion) { + this.hardwareVersion = hardwareVersion; + } + + public String getSoftwareVersion() { + return softwareVersion; + } + + public void setSoftwareVersion(String softwareVersion) { + this.softwareVersion = softwareVersion; + } + + public String getDesignArchive() { + return designArchive; + } + + public void setDesignArchive(String designArchive) { + this.designArchive = designArchive; + } + + public String getBatchFiling() { + return batchFiling; + } + + public void setBatchFiling(String batchFiling) { + this.batchFiling = batchFiling; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getKpi() { + return kpi; + } + + public void setKpi(String kpi) { + this.kpi = kpi; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public String getQuotaSummary() { + return quotaSummary; + } + + public void setQuotaSummary(String quotaSummary) { + this.quotaSummary = quotaSummary; + } + + public String getStatusFmt() { + return statusFmt; + } + + public void setStatusFmt(String statusFmt) { + this.statusFmt = statusFmt; + } + + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getProductType() { + return productType; + } + + public void setProductType(String productType) { + this.productType = productType; + } + + public String getCommunicationVersion() { + return communicationVersion; + } + + public void setCommunicationVersion(String communicationVersion) { + this.communicationVersion = communicationVersion; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductDeviceType{" + + "id=" + id + + ", productName=" + productName + + ", productModel=" + productModel + + ", machineVersion=" + machineVersion + + ", hardwareVersion=" + hardwareVersion + + ", softwareVersion=" + softwareVersion + + ", designArchive=" + designArchive + + ", batchFiling=" + batchFiling + + ", status=" + status + + ", kpi=" + kpi + + ", principal=" + principal + + ", quotaSummary=" + quotaSummary + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java new file mode 100644 index 0000000..b0fd924 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java @@ -0,0 +1,187 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_factory_information") +public class ProductFactoryInformation extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 厂家名称 + */ + @TableField("name") + private String name; + /** + * 厂家联系人 + */ + @TableField("person_name") + private String personName; + /** + * 地址 + */ + @TableField("address") + private String address; + /** + * 电话 + */ + @TableField("phone") + private String phone; + /** + * 开户行 + */ + @TableField("bank") + private String bank; + /** + * 税号 + */ + @TableField("tax_number") + private String taxNumber; + /** + * 在产设备 + */ + @TableField("producting_device") + private String productingDevice; + /** + * 设备报价表 + */ + @TableField("equipment_quotation") + private String equipmentQuotation; + + @TableField("createtime") + private Date createtime =new Date(); + + @TableField("deptid") + private String deptid; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPersonName() { + return personName; + } + + public void setPersonName(String personName) { + this.personName = personName; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getBank() { + return bank; + } + + public void setBank(String bank) { + this.bank = bank; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getProductingDevice() { + return productingDevice; + } + + public void setProductingDevice(String productingDevice) { + this.productingDevice = productingDevice; + } + + public String getEquipmentQuotation() { + return equipmentQuotation; + } + + public void setEquipmentQuotation(String equipmentQuotation) { + this.equipmentQuotation = equipmentQuotation; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductFactoryInformation{" + + "id=" + id + + ", name=" + name + + ", personName=" + personName + + ", address=" + address + + ", phone=" + phone + + ", bank=" + bank + + ", taxNumber=" + taxNumber + + ", productingDevice=" + productingDevice + + ", equipmentQuotation=" + equipmentQuotation + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java new file mode 100644 index 0000000..00cbc92 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -0,0 +1,99 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@TableName("product_project") +public class Project extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_name") + private String projectName; + @TableField("project_simple_name") + private String projectSimpleName; + @TableField("project_manager") + private String projectManager; + private String descn; + @TableField("createtime") + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getProjectManager() { + return projectManager; + } + + public void setProjectManager(String projectManager) { + this.projectManager = projectManager; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Project{" + + "id=" + id + + ", projectName=" + projectName + + ", projectSimpleName=" + projectSimpleName + + ", projectManager=" + projectManager + + ", descn=" + descn + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java new file mode 100644 index 0000000..658c2e1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java @@ -0,0 +1,126 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_reimburse") +public class Reimburse extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mi:ss") + @TableField("reimburse_time") + private Date reimburseTime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getReimburseTime() { + return reimburseTime; + } + + public void setReimburseTime(Date reimburseTime) { + this.reimburseTime = reimburseTime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Reimburse{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", reimburseTime=" + reimburseTime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java new file mode 100644 index 0000000..987efa7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java @@ -0,0 +1,141 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_task") +public class Task extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_id") + private Long projectId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("devmode_id") + private String devmodeId; + private Long devcount; + @TableField("delivery_time") + private Date deliveryTime; + private String demand; + private Date createtime; + @TableField(exist = false) + private String deliveryTimeFmt; + + @TableField(exist = false) + private Long taskId; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getProjectId() { + return projectId; + } + + public void setProjectId(Long projectId) { + this.projectId = projectId; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDevmodeId() { + return devmodeId; + } + + public void setDevmodeId(String devmodeId) { + this.devmodeId = devmodeId; + } + + public Long getDevcount() { + return devcount; + } + + public void setDevcount(Long devcount) { + this.devcount = devcount; + } + + public Date getDeliveryTime() { + return deliveryTime; + } + + public void setDeliveryTime(Date deliveryTime) { + this.deliveryTime = deliveryTime; + } + + public String getDemand() { + return demand; + } + + public void setDemand(String demand) { + this.demand = demand; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeliveryTimeFmt() { + return deliveryTimeFmt; + } + + public void setDeliveryTimeFmt(String deliveryTimeFmt) { + this.deliveryTimeFmt = deliveryTimeFmt; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Task{" + + "id=" + id + + ", projectId=" + projectId + + ", devtypeId=" + devtypeId + + ", devmodeId=" + devmodeId + + ", devcount=" + devcount + + ", deliveryTime=" + deliveryTime + + ", demand=" + demand + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java new file mode 100644 index 0000000..7785de5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface IAccountService extends IService { + + /** + * 根据用户名查用户 + * @param userName + * @return + */ + Account findUserByName(String userName); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java new file mode 100644 index 0000000..d8b5e87 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IContractService extends IService { + List selectPageList(Page page, String keyword1, String keyword2, String keyword3); + List reportExport(String keyword1, String keyword2, String keyword3); + void importContract( List contracts); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java new file mode 100644 index 0000000..0f2d6e0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IPaymentsService extends IService { + + boolean validate(Long proId,String money,String reorder); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java new file mode 100644 index 0000000..71490df --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -0,0 +1,62 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductDeviceTypeService extends IService { + + /** + * 批量导入设备类型列表 + * @param results + */ + void importDeviceType(List results); + + /** + * 导出列表 + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List reportExport(String keyword1,String keyword2,String keyword3); + + + /** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectPageDataScope(DataScope dataScope, Page page, + String keyword1, String keyword2, String keyword3); + + /** + * 获取在产的设备类型 + * @return + */ + List selectDeviceTypeList(); + + /** + * 根据产品型号获取产品 + * @param deviceModel + * @return + */ + ProductDeviceType selectDeviceTypeByModel(String deviceModel); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java new file mode 100644 index 0000000..455f60a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductFactoryInformationService extends IService { + /** + * 根据条件导出列表 + * @param keyword1 + * @param keyword2 + * @return + */ + List reportExport(String keyword1, String keyword2); + + + /** + * 导入 + * @param results + */ + void importDeviceType(List results); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java new file mode 100644 index 0000000..3c27bd1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface IProjectService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java new file mode 100644 index 0000000..ee0a55c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IReimburseService extends IService { + boolean validate(Long proId,String money,String reorder); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java new file mode 100644 index 0000000..09ce653 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.dao.AccountMapper; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.stereotype.Service; + +/** + *

+ * 管理员表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@Service +public class AccountServiceImpl extends ServiceImpl implements IAccountService { + + @Override + public Account findUserByName(String userName) { + + EntityWrapper userEntityWrapper = new EntityWrapper<>(); + userEntityWrapper.eq("name",userName); + userEntityWrapper.eq("status","1"); + return this.selectOne(userEntityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java new file mode 100644 index 0000000..dd04da0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java @@ -0,0 +1,138 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.shiro.ShiroUser; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ContractMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IPaymentsService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ContractServiceImpl extends ServiceImpl implements IContractService { + @Autowired + private IPaymentsService paymentsService; + @Autowired + private ICommonPermissionService permissionService; + @Autowired + private IAccountService userService; + @Value("${casic.producerName}") + private String producerName; + @Value("${casic.repairName}") + private String repairName; + + @Override + public List selectPageList(Page page, String keyword1, String keyword2, String keyword3) { + +// EntityWrapper query = new EntityWrapper<>(); +// if (ToolUtil.isNotEmpty(keyword1)) { +// query.like("contract_factory", keyword1); +// } +// if (ToolUtil.isNotEmpty(keyword3)) { +// query.like("contract_number", keyword3); +// } +// List contractList = this.selectPage(page, query).getRecords(); +// contractList.forEach(contract -> { +// contract.setPaymentStatus(getPaymentStatus(contract)); +// String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" +// + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" +// + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); +// contract.setNetFlow(netFlowStr); +// +// }); +// return contractList; + + + List contractList = new ArrayList<>(); + DataScope dataScope = permissionService.getCurrUserDataScope(); + ShiroUser currentUser = permissionService.getCurrLoginUser(); + if (currentUser.getRoleTips().contains(producerName) || currentUser.getRoleTips().contains(repairName)) { + contractList = this.baseMapper.findContractList(dataScope,page, currentUser.getName(), keyword1, keyword2, keyword3); + } else { + contractList = this.baseMapper.findContractList(dataScope,page, "", keyword1, keyword2, keyword3); + } + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + + }); + return contractList; + } + + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + + + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("contractFactory", keyword1); + } + if (ToolUtil.isNotEmpty(keyword3)) { + query.like("contract_number", keyword3); + } + + List contractList = this.selectList(query); + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); +// permissionService.findInDictByCode("applyStatus") + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + }); + + return contractList; + } + + @Override + public void importContract(List contracts) { + contracts.forEach(contract -> { + EntityWrapper query = new EntityWrapper<>(); + query.eq("contract_number", contract.getContractNumber()); + this.delete(query); + Account user = userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); + this.insert(contract); + }); + } + + public String getPaymentStatus(Contract contract) { + Map paraMap = new HashMap<>(); + paraMap.put("pro_id", contract.getId()); + List paymentsList = paymentsService.selectByMap(paraMap); + float sum = 0; + for (Payments payments : paymentsList) { + sum = sum + (ToolUtil.isNotEmpty(payments.getMoney()) ? Float.parseFloat(payments.getMoney()) : 0); + } + DecimalFormat df = new DecimalFormat("0"); + return sum + "," + df.format(100 * sum / Float.valueOf(contract.getContractAmount())) + "%"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java new file mode 100644 index 0000000..0c125d8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PaymentsMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class PaymentsServiceImpl extends ServiceImpl implements IPaymentsService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money,String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List paymentsList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Payments payments : paymentsList) { + if(reorder.equals(payments.getReorder())) continue; + total += ToolUtil.isNotEmpty(payments.getMoney()) ? + Long.valueOf(payments.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java new file mode 100644 index 0000000..ac6d447 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductDeviceTypeMapper; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.swing.text.html.parser.Entity; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductDeviceTypeServiceImpl extends ServiceImpl implements IProductDeviceTypeService { + + @Autowired + private ICommonPermissionService permissionService; + + @Transactional(rollbackFor = Exception.class) + @Override + public void importDeviceType(List results) { + + for (ProductDeviceType productDeviceType : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + this.baseMapper.delete(wrapper); + this.baseMapper.insert(productDeviceType); + } + } + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + wrapper.like("principal", keyword3); + } + List productDeviceTypes = this.selectList(wrapper); + for (ProductDeviceType productDeviceType : productDeviceTypes) { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + } + return productDeviceTypes; + } + + @Override + public List selectPageDataScope(DataScope dataScope, Page page, String keyword1, String keyword2, String keyword3) { + + List productDeviceTypeList = this.baseMapper.selectDataScopePage(dataScope, page, keyword1, keyword2, keyword3); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + return productDeviceTypeList; + + } + + @Override + public List selectDeviceTypeList() { + return this.baseMapper.selectDeviceTypeList(); + } + + + @Override + public ProductDeviceType selectDeviceTypeByModel(String deviceModel) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("product_model",deviceModel); + return this.selectOne(entityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java new file mode 100644 index 0000000..efe4410 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java @@ -0,0 +1,50 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductFactoryInformationMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductFactoryInformationServiceImpl extends ServiceImpl implements IProductFactoryInformationService { + + @Override + public List reportExport(String keyword1, String keyword2) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.like("producting_device", keyword2); + } + List productFactoryInformations = this.selectList(wrapper); + + return productFactoryInformations; + } + + + @Transactional(rollbackFor=Exception.class) + @Override + public void importDeviceType(List results) { + for (ProductFactoryInformation productFactoryInformation : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + delete(wrapper); + this.baseMapper.insert(productFactoryInformation); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java new file mode 100644 index 0000000..34655b0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.dao.ProjectMapper; +import com.casic.missiles.modular.system.service.IProjectService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@Service +public class ProjectServiceImpl extends ServiceImpl implements IProjectService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java new file mode 100644 index 0000000..5e8b77b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java @@ -0,0 +1,48 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.dao.ReimburseMapper; +import com.casic.missiles.modular.system.service.IReimburseService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ReimburseServiceImpl extends ServiceImpl implements IReimburseService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money, String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List reimburseList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Reimburse reimburse : reimburseList) { + if (reorder.equals(reimburse.getReorder())) continue; + total += ToolUtil.isNotEmpty(reimburse.getMoney()) ? + Long.valueOf(reimburse.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java new file mode 100644 index 0000000..4670df3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 集中器相关日志 + */ +public class ProjectDict extends AbstractDictMap { + public static final String PROJECT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + @Override + public void init() { + put("projectName","项目名称"); + put("projectSimpleName","项目简称"); + put("projectManager","项目经理"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java new file mode 100644 index 0000000..7981a17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dto; + +/** + * 用于设备类型展示 + * @author test203 + * @date 2020-04-03 + */ +public class DeviceTypeDto { + private Long id; + private String productName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java new file mode 100644 index 0000000..f254585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java @@ -0,0 +1,361 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.math.BigDecimal; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; + +/** + *

+ * 管理员表 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@TableName("sys_user") +public class Account extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + /** + * 头像 + */ + private String avatar; + /** + * 账号 + */ + private String account; + /** + * 密码 + */ + private String password; + /** + * md5密码盐 + */ + private String salt; + /** + * 名字 + */ + private String name; + /** + * 生日 + */ + private Date birthday; + /** + * 性别(1:男 2:女) + */ + private String sex; + /** + * 电子邮件 + */ + private String email; + /** + * 电话 + */ + private String phone; + /** + * 角色id + */ + private String roleid; + /** + * 部门id + */ + private Long deptid; + /** + * 状态(1:启用 2:冻结 3:删除) + */ + private String status; + /** + * 创建时间 + */ + private Date createtime; + /** + * 保留字段 + */ + private Integer version; + private String targetid; + private String targetname; + @TableField("password_sync") + private String passwordSync; + @TableField("IS_SYNC") + private Integer isSync; + private String simplename; + /** + * 同步组织ID + */ + @TableField("TARGET_DEPTID_SYNC") + private String targetDeptidSync; + @TableField("LOGIN_IP") + private String loginIp; + @TableField("LOGIN_MAC") + private String loginMac; + /** + * 最后在线时间 + */ + @TableField("LAST_TIME") + private Date lastTime; + /** + * 经度 + */ + @TableField("POSITION_LNG") + private BigDecimal positionLng; + /** + * 纬度 + */ + @TableField("POSITION_LAT") + private BigDecimal positionLat; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt() { + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getRoleid() { + return roleid; + } + + public void setRoleid(String roleid) { + this.roleid = roleid; + } + + public Long getDeptid() { + return deptid; + } + + public void setDeptid(Long deptid) { + this.deptid = deptid; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + public String getTargetid() { + return targetid; + } + + public void setTargetid(String targetid) { + this.targetid = targetid; + } + + public String getTargetname() { + return targetname; + } + + public void setTargetname(String targetname) { + this.targetname = targetname; + } + + public String getPasswordSync() { + return passwordSync; + } + + public void setPasswordSync(String passwordSync) { + this.passwordSync = passwordSync; + } + + public Integer getIsSync() { + return isSync; + } + + public void setIsSync(Integer isSync) { + this.isSync = isSync; + } + + public String getSimplename() { + return simplename; + } + + public void setSimplename(String simplename) { + this.simplename = simplename; + } + + public String getTargetDeptidSync() { + return targetDeptidSync; + } + + public void setTargetDeptidSync(String targetDeptidSync) { + this.targetDeptidSync = targetDeptidSync; + } + + public String getLoginIp() { + return loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getLoginMac() { + return loginMac; + } + + public void setLoginMac(String loginMac) { + this.loginMac = loginMac; + } + + public Date getLastTime() { + return lastTime; + } + + public void setLastTime(Date lastTime) { + this.lastTime = lastTime; + } + + public BigDecimal getPositionLng() { + return positionLng; + } + + public void setPositionLng(BigDecimal positionLng) { + this.positionLng = positionLng; + } + + public BigDecimal getPositionLat() { + return positionLat; + } + + public void setPositionLat(BigDecimal positionLat) { + this.positionLat = positionLat; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", avatar=" + avatar + + ", account=" + account + + ", password=" + password + + ", salt=" + salt + + ", name=" + name + + ", birthday=" + birthday + + ", sex=" + sex + + ", email=" + email + + ", phone=" + phone + + ", roleid=" + roleid + + ", deptid=" + deptid + + ", status=" + status + + ", createtime=" + createtime + + ", version=" + version + + ", targetid=" + targetid + + ", targetname=" + targetname + + ", passwordSync=" + passwordSync + + ", isSync=" + isSync + + ", simplename=" + simplename + + ", targetDeptidSync=" + targetDeptidSync + + ", loginIp=" + loginIp + + ", loginMac=" + loginMac + + ", lastTime=" + lastTime + + ", positionLng=" + positionLng + + ", positionLat=" + positionLat + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java new file mode 100644 index 0000000..81516b7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -0,0 +1,110 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_batch") +public class Batch extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_number") + private Long batchNumber; + @TableField("batch_count") + private Long batchCount; + @TableField("contract_id") + private Long contractId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("task_id") + private Long taskId; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(Long batchNumber) { + this.batchNumber = batchNumber; + } + + public Long getBatchCount() { + return batchCount; + } + + public void setBatchCount(Long batchCount) { + this.batchCount = batchCount; + } + + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Batch{" + + "id=" + id + + ", batchNumber=" + batchNumber + + ", batchCount=" + batchCount + + ", contractId=" + contractId + + ", taskId=" + taskId + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java new file mode 100644 index 0000000..893a1ed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -0,0 +1,186 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_contract") +public class Contract extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("contract_number") + private String contractNumber; + @TableField("contract_name") + private String contractName; + @TableField("contract_content") + private String contractContent; + @TableField("contract_amount") + private String contractAmount; + @TableField("external_project_apply") + private String externalProjectApply; + @TableField("external_contract_apply") + private String externalContractApply; + @TableField("principal") + private String principal; + @TableField("external_check_apply") + private String externalCheckApply; + @TableField("contract_factory") + private String contractFactory; + @TableField("createtime") + private Date createtime; + @TableField(exist = false) + private String paymentStatus; + @TableField(exist = false) + private String netFlow; + @TableField("deptid") + private String deptid; + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getContractName() { + return contractName; + } + + public void setContractName(String contractName) { + this.contractName = contractName; + } + + public String getContractContent() { + return contractContent; + } + + public void setContractContent(String contractContent) { + this.contractContent = contractContent; + } + + public String getContractAmount() { + return contractAmount; + } + + public void setContractAmount(String contractAmount) { + this.contractAmount = contractAmount; + } + + public String getExternalProjectApply() { + return externalProjectApply; + } + + public void setExternalProjectApply(String externalProjectApply) { + this.externalProjectApply = externalProjectApply; + } + + public String getExternalContractApply() { + return externalContractApply; + } + + public void setExternalContractApply(String externalContractApply) { + this.externalContractApply = externalContractApply; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalCheckApply() { + return externalCheckApply; + } + + public void setExternalCheckApply(String externalCheckApply) { + this.externalCheckApply = externalCheckApply; + } + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public String getContractFactory() { + return contractFactory; + } + + public void setContractFactory(String contractFactory) { + this.contractFactory = contractFactory; + } + + public String getNetFlow() { + return netFlow; + } + + public void setNetFlow(String netFlow) { + this.netFlow = netFlow; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Contract{" + + "contractNumber=" + contractNumber + + ", contractName=" + contractName + + ", contractContent=" + contractContent + + ", contractAmount=" + contractAmount + + ", externalProjectApply=" + externalProjectApply + + ", externalContractApply=" + externalContractApply + + ", principal=" + principal + + ", id=" + id + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java new file mode 100644 index 0000000..8718d91 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -0,0 +1,150 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_device") +public class Device extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_id") + private Long batchId; + private String devcode; + @TableField("devtype_id") + private Long devtypeId; + @TableField("is_send") + private String isSend; + private String longitude; + private String latitude; + @TableField("install_height") + private String installHeight; + private String iccid; + private Long imei; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public Long getImei() { + return imei; + } + + public void setImei(Long imei) { + this.imei = imei; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Device{" + + "id=" + id + + ", batchId=" + batchId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", isSend=" + isSend + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", installHeight=" + installHeight + + ", iccid=" + iccid + + ", imei=" + imei + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java new file mode 100644 index 0000000..870c36f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_payments") +public class Payments extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @TableField("paytime") + private Date paytime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getPaytime() { + return paytime; + } + + public void setPaytime(Date paytime) { + this.paytime = paytime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Payments{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", paytime=" + paytime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java new file mode 100644 index 0000000..ae6b585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -0,0 +1,285 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_device_type") +public class ProductDeviceType extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 产品名称 + */ + @TableField("product_name") + private String productName; + /** + * 产品型号 + */ + @TableField("product_model") + private String productModel; + + /** + * 通讯版本号 + */ + @TableField("communication_version") + private String communicationVersion; + + /** + * 产品类型 + */ + @TableField("product_type") + private String productType; + + /** + * 整机版本号 + */ + @TableField("machine_version") + private String machineVersion; + /** + * 硬件版本号 + */ + @TableField("hardware_version") + private String hardwareVersion; + /** + * 软件版本号 + */ + @TableField("software_version") + private String softwareVersion; + /** + * 设计归档 + */ + @TableField("design_archive") + private String designArchive; + /** + * 批产归档 + */ + @TableField("batch_filing") + private String batchFiling; + /** + * 状态 + */ + @TableField("status") + private Integer status; + /** + * 性能指标 + */ + @TableField("kpi") + private String kpi; + /** + * 批产负责人 + */ + @TableField("principal") + private String principal; + /** + * 定额汇总表 + */ + @TableField("quota_summary") + private String quotaSummary; + + /** + * 权属部门 + */ + @TableField("deptid") + private String deptid; + + /** + * 备注 + */ + @TableField("descn") + private String descn; + + @TableField("createtime") + private Date createtime; + + + @TableField(exist = false) + private String statusFmt; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } + + public String getMachineVersion() { + return machineVersion; + } + + public void setMachineVersion(String machineVersion) { + this.machineVersion = machineVersion; + } + + public String getHardwareVersion() { + return hardwareVersion; + } + + public void setHardwareVersion(String hardwareVersion) { + this.hardwareVersion = hardwareVersion; + } + + public String getSoftwareVersion() { + return softwareVersion; + } + + public void setSoftwareVersion(String softwareVersion) { + this.softwareVersion = softwareVersion; + } + + public String getDesignArchive() { + return designArchive; + } + + public void setDesignArchive(String designArchive) { + this.designArchive = designArchive; + } + + public String getBatchFiling() { + return batchFiling; + } + + public void setBatchFiling(String batchFiling) { + this.batchFiling = batchFiling; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getKpi() { + return kpi; + } + + public void setKpi(String kpi) { + this.kpi = kpi; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public String getQuotaSummary() { + return quotaSummary; + } + + public void setQuotaSummary(String quotaSummary) { + this.quotaSummary = quotaSummary; + } + + public String getStatusFmt() { + return statusFmt; + } + + public void setStatusFmt(String statusFmt) { + this.statusFmt = statusFmt; + } + + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getProductType() { + return productType; + } + + public void setProductType(String productType) { + this.productType = productType; + } + + public String getCommunicationVersion() { + return communicationVersion; + } + + public void setCommunicationVersion(String communicationVersion) { + this.communicationVersion = communicationVersion; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductDeviceType{" + + "id=" + id + + ", productName=" + productName + + ", productModel=" + productModel + + ", machineVersion=" + machineVersion + + ", hardwareVersion=" + hardwareVersion + + ", softwareVersion=" + softwareVersion + + ", designArchive=" + designArchive + + ", batchFiling=" + batchFiling + + ", status=" + status + + ", kpi=" + kpi + + ", principal=" + principal + + ", quotaSummary=" + quotaSummary + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java new file mode 100644 index 0000000..b0fd924 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java @@ -0,0 +1,187 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_factory_information") +public class ProductFactoryInformation extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 厂家名称 + */ + @TableField("name") + private String name; + /** + * 厂家联系人 + */ + @TableField("person_name") + private String personName; + /** + * 地址 + */ + @TableField("address") + private String address; + /** + * 电话 + */ + @TableField("phone") + private String phone; + /** + * 开户行 + */ + @TableField("bank") + private String bank; + /** + * 税号 + */ + @TableField("tax_number") + private String taxNumber; + /** + * 在产设备 + */ + @TableField("producting_device") + private String productingDevice; + /** + * 设备报价表 + */ + @TableField("equipment_quotation") + private String equipmentQuotation; + + @TableField("createtime") + private Date createtime =new Date(); + + @TableField("deptid") + private String deptid; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPersonName() { + return personName; + } + + public void setPersonName(String personName) { + this.personName = personName; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getBank() { + return bank; + } + + public void setBank(String bank) { + this.bank = bank; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getProductingDevice() { + return productingDevice; + } + + public void setProductingDevice(String productingDevice) { + this.productingDevice = productingDevice; + } + + public String getEquipmentQuotation() { + return equipmentQuotation; + } + + public void setEquipmentQuotation(String equipmentQuotation) { + this.equipmentQuotation = equipmentQuotation; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductFactoryInformation{" + + "id=" + id + + ", name=" + name + + ", personName=" + personName + + ", address=" + address + + ", phone=" + phone + + ", bank=" + bank + + ", taxNumber=" + taxNumber + + ", productingDevice=" + productingDevice + + ", equipmentQuotation=" + equipmentQuotation + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java new file mode 100644 index 0000000..00cbc92 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -0,0 +1,99 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@TableName("product_project") +public class Project extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_name") + private String projectName; + @TableField("project_simple_name") + private String projectSimpleName; + @TableField("project_manager") + private String projectManager; + private String descn; + @TableField("createtime") + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getProjectManager() { + return projectManager; + } + + public void setProjectManager(String projectManager) { + this.projectManager = projectManager; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Project{" + + "id=" + id + + ", projectName=" + projectName + + ", projectSimpleName=" + projectSimpleName + + ", projectManager=" + projectManager + + ", descn=" + descn + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java new file mode 100644 index 0000000..658c2e1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java @@ -0,0 +1,126 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_reimburse") +public class Reimburse extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mi:ss") + @TableField("reimburse_time") + private Date reimburseTime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getReimburseTime() { + return reimburseTime; + } + + public void setReimburseTime(Date reimburseTime) { + this.reimburseTime = reimburseTime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Reimburse{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", reimburseTime=" + reimburseTime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java new file mode 100644 index 0000000..987efa7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java @@ -0,0 +1,141 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_task") +public class Task extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_id") + private Long projectId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("devmode_id") + private String devmodeId; + private Long devcount; + @TableField("delivery_time") + private Date deliveryTime; + private String demand; + private Date createtime; + @TableField(exist = false) + private String deliveryTimeFmt; + + @TableField(exist = false) + private Long taskId; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getProjectId() { + return projectId; + } + + public void setProjectId(Long projectId) { + this.projectId = projectId; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDevmodeId() { + return devmodeId; + } + + public void setDevmodeId(String devmodeId) { + this.devmodeId = devmodeId; + } + + public Long getDevcount() { + return devcount; + } + + public void setDevcount(Long devcount) { + this.devcount = devcount; + } + + public Date getDeliveryTime() { + return deliveryTime; + } + + public void setDeliveryTime(Date deliveryTime) { + this.deliveryTime = deliveryTime; + } + + public String getDemand() { + return demand; + } + + public void setDemand(String demand) { + this.demand = demand; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeliveryTimeFmt() { + return deliveryTimeFmt; + } + + public void setDeliveryTimeFmt(String deliveryTimeFmt) { + this.deliveryTimeFmt = deliveryTimeFmt; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Task{" + + "id=" + id + + ", projectId=" + projectId + + ", devtypeId=" + devtypeId + + ", devmodeId=" + devmodeId + + ", devcount=" + devcount + + ", deliveryTime=" + deliveryTime + + ", demand=" + demand + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java new file mode 100644 index 0000000..7785de5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface IAccountService extends IService { + + /** + * 根据用户名查用户 + * @param userName + * @return + */ + Account findUserByName(String userName); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java new file mode 100644 index 0000000..d8b5e87 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IContractService extends IService { + List selectPageList(Page page, String keyword1, String keyword2, String keyword3); + List reportExport(String keyword1, String keyword2, String keyword3); + void importContract( List contracts); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java new file mode 100644 index 0000000..0f2d6e0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IPaymentsService extends IService { + + boolean validate(Long proId,String money,String reorder); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java new file mode 100644 index 0000000..71490df --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -0,0 +1,62 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductDeviceTypeService extends IService { + + /** + * 批量导入设备类型列表 + * @param results + */ + void importDeviceType(List results); + + /** + * 导出列表 + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List reportExport(String keyword1,String keyword2,String keyword3); + + + /** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectPageDataScope(DataScope dataScope, Page page, + String keyword1, String keyword2, String keyword3); + + /** + * 获取在产的设备类型 + * @return + */ + List selectDeviceTypeList(); + + /** + * 根据产品型号获取产品 + * @param deviceModel + * @return + */ + ProductDeviceType selectDeviceTypeByModel(String deviceModel); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java new file mode 100644 index 0000000..455f60a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductFactoryInformationService extends IService { + /** + * 根据条件导出列表 + * @param keyword1 + * @param keyword2 + * @return + */ + List reportExport(String keyword1, String keyword2); + + + /** + * 导入 + * @param results + */ + void importDeviceType(List results); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java new file mode 100644 index 0000000..3c27bd1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface IProjectService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java new file mode 100644 index 0000000..ee0a55c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IReimburseService extends IService { + boolean validate(Long proId,String money,String reorder); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java new file mode 100644 index 0000000..09ce653 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.dao.AccountMapper; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.stereotype.Service; + +/** + *

+ * 管理员表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@Service +public class AccountServiceImpl extends ServiceImpl implements IAccountService { + + @Override + public Account findUserByName(String userName) { + + EntityWrapper userEntityWrapper = new EntityWrapper<>(); + userEntityWrapper.eq("name",userName); + userEntityWrapper.eq("status","1"); + return this.selectOne(userEntityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java new file mode 100644 index 0000000..dd04da0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java @@ -0,0 +1,138 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.shiro.ShiroUser; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ContractMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IPaymentsService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ContractServiceImpl extends ServiceImpl implements IContractService { + @Autowired + private IPaymentsService paymentsService; + @Autowired + private ICommonPermissionService permissionService; + @Autowired + private IAccountService userService; + @Value("${casic.producerName}") + private String producerName; + @Value("${casic.repairName}") + private String repairName; + + @Override + public List selectPageList(Page page, String keyword1, String keyword2, String keyword3) { + +// EntityWrapper query = new EntityWrapper<>(); +// if (ToolUtil.isNotEmpty(keyword1)) { +// query.like("contract_factory", keyword1); +// } +// if (ToolUtil.isNotEmpty(keyword3)) { +// query.like("contract_number", keyword3); +// } +// List contractList = this.selectPage(page, query).getRecords(); +// contractList.forEach(contract -> { +// contract.setPaymentStatus(getPaymentStatus(contract)); +// String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" +// + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" +// + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); +// contract.setNetFlow(netFlowStr); +// +// }); +// return contractList; + + + List contractList = new ArrayList<>(); + DataScope dataScope = permissionService.getCurrUserDataScope(); + ShiroUser currentUser = permissionService.getCurrLoginUser(); + if (currentUser.getRoleTips().contains(producerName) || currentUser.getRoleTips().contains(repairName)) { + contractList = this.baseMapper.findContractList(dataScope,page, currentUser.getName(), keyword1, keyword2, keyword3); + } else { + contractList = this.baseMapper.findContractList(dataScope,page, "", keyword1, keyword2, keyword3); + } + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + + }); + return contractList; + } + + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + + + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("contractFactory", keyword1); + } + if (ToolUtil.isNotEmpty(keyword3)) { + query.like("contract_number", keyword3); + } + + List contractList = this.selectList(query); + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); +// permissionService.findInDictByCode("applyStatus") + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + }); + + return contractList; + } + + @Override + public void importContract(List contracts) { + contracts.forEach(contract -> { + EntityWrapper query = new EntityWrapper<>(); + query.eq("contract_number", contract.getContractNumber()); + this.delete(query); + Account user = userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); + this.insert(contract); + }); + } + + public String getPaymentStatus(Contract contract) { + Map paraMap = new HashMap<>(); + paraMap.put("pro_id", contract.getId()); + List paymentsList = paymentsService.selectByMap(paraMap); + float sum = 0; + for (Payments payments : paymentsList) { + sum = sum + (ToolUtil.isNotEmpty(payments.getMoney()) ? Float.parseFloat(payments.getMoney()) : 0); + } + DecimalFormat df = new DecimalFormat("0"); + return sum + "," + df.format(100 * sum / Float.valueOf(contract.getContractAmount())) + "%"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java new file mode 100644 index 0000000..0c125d8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PaymentsMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class PaymentsServiceImpl extends ServiceImpl implements IPaymentsService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money,String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List paymentsList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Payments payments : paymentsList) { + if(reorder.equals(payments.getReorder())) continue; + total += ToolUtil.isNotEmpty(payments.getMoney()) ? + Long.valueOf(payments.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java new file mode 100644 index 0000000..ac6d447 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductDeviceTypeMapper; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.swing.text.html.parser.Entity; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductDeviceTypeServiceImpl extends ServiceImpl implements IProductDeviceTypeService { + + @Autowired + private ICommonPermissionService permissionService; + + @Transactional(rollbackFor = Exception.class) + @Override + public void importDeviceType(List results) { + + for (ProductDeviceType productDeviceType : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + this.baseMapper.delete(wrapper); + this.baseMapper.insert(productDeviceType); + } + } + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + wrapper.like("principal", keyword3); + } + List productDeviceTypes = this.selectList(wrapper); + for (ProductDeviceType productDeviceType : productDeviceTypes) { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + } + return productDeviceTypes; + } + + @Override + public List selectPageDataScope(DataScope dataScope, Page page, String keyword1, String keyword2, String keyword3) { + + List productDeviceTypeList = this.baseMapper.selectDataScopePage(dataScope, page, keyword1, keyword2, keyword3); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + return productDeviceTypeList; + + } + + @Override + public List selectDeviceTypeList() { + return this.baseMapper.selectDeviceTypeList(); + } + + + @Override + public ProductDeviceType selectDeviceTypeByModel(String deviceModel) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("product_model",deviceModel); + return this.selectOne(entityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java new file mode 100644 index 0000000..efe4410 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java @@ -0,0 +1,50 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductFactoryInformationMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductFactoryInformationServiceImpl extends ServiceImpl implements IProductFactoryInformationService { + + @Override + public List reportExport(String keyword1, String keyword2) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.like("producting_device", keyword2); + } + List productFactoryInformations = this.selectList(wrapper); + + return productFactoryInformations; + } + + + @Transactional(rollbackFor=Exception.class) + @Override + public void importDeviceType(List results) { + for (ProductFactoryInformation productFactoryInformation : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + delete(wrapper); + this.baseMapper.insert(productFactoryInformation); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java new file mode 100644 index 0000000..34655b0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.dao.ProjectMapper; +import com.casic.missiles.modular.system.service.IProjectService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@Service +public class ProjectServiceImpl extends ServiceImpl implements IProjectService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java new file mode 100644 index 0000000..5e8b77b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java @@ -0,0 +1,48 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.dao.ReimburseMapper; +import com.casic.missiles.modular.system.service.IReimburseService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ReimburseServiceImpl extends ServiceImpl implements IReimburseService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money, String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List reimburseList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Reimburse reimburse : reimburseList) { + if (reorder.equals(reimburse.getReorder())) continue; + total += ToolUtil.isNotEmpty(reimburse.getMoney()) ? + Long.valueOf(reimburse.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java new file mode 100644 index 0000000..d5ffadb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java @@ -0,0 +1,235 @@ +package com.casic.missiles.modular.system.util; + +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; + +import java.util.*; + +/** + * @author test203 + * @since 2020-04-06 + */ +public class DeviceUtil { + private final static String factoryCode = "20"; + private final static String wellExcludeCode = "4120"; + private final static String loraDevice = "A"; + private static Map devTypeCountHashMap = new HashMap(); + + static { + devTypeCountHashMap.put("电子标识器", 99999L); + devTypeCountHashMap.put("井盖状态监测仪", 65534L); + devTypeCountHashMap.put("灯箱控制器", 65535L); + devTypeCountHashMap.put("单灯控制器(单路)", 65535L); + devTypeCountHashMap.put("单灯控制器(双路)", 65535L); + devTypeCountHashMap.put("数据集中器", 255L); + devTypeCountHashMap.put("有害气体监测仪", 999L); + } + + public static List createDevCodes(ProductDeviceType deviceType, List batches) { + List deviceList = new ArrayList<>(); + try { + if ("电子标识器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 年份XX 批次号XX 编号XXXXX + String devCode = deviceType.getProductType() + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%05d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("井盖状态监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + String wellCode4 = String.format("%04x", i); + if (wellExcludeCode.equals(wellCode4)) { + continue; + } + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + wellCode4; + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("灯箱控制器".equals(deviceType.getProductName()) || + "单灯控制器(单路)".equals(deviceType.getProductName()) || + "单灯控制器(双路)".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("数据集中器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("有害气体监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型WS2000X- 年份XX 批次序号XXXX 编号XXX + String devCode = deviceType.getProductType() + + getYearFmt() + + String.format("%04d", batch.getBatchNumber()) + + String.format("%03d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } + //其他设备类型分lora和非lora版本 + else { + if (loraDevice.equals(deviceType.getCommunicationVersion())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } else { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return deviceList; + } + + + public static Map validate(ProductDeviceType deviceType, List batches, Task task) { + Map resultMap = new HashMap<>(); + boolean success = true; + String msg = ""; + long devSum = null != task ? task.getDevcount() : 0; + long devcount = 0, batchCountMax; + batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? + 0 : devTypeCountHashMap.get(deviceType.getProductName()); + if (0 == batchCountMax) { + if (deviceType.getProductModel().indexOf(loraDevice) + == deviceType.getProductModel().length() - 1) { + batchCountMax = 255; + } else { + batchCountMax = 9999; + } + } + for (Batch batch : batches) { + if (batch.getBatchCount() > batchCountMax) { + success = false; + msg = batch.getBatchNumber() + "批次号数量超过了最大范围" + batchCountMax; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + devcount += batch.getBatchCount(); + } + if (devcount != devSum) { + return returnMsg(); + } + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + + public static Map returnMsg() { + Map resultMap = new HashMap<>(); + resultMap.put("success", false); + resultMap.put("msg", "所有批次数量之和与任务中设备数量不一致!"); + return resultMap; + } + + /** + * 获取编码中的年份 + * + * @return + */ + public static String getYearFmt() { + + return DateUtil.format(new Date(), "yyyy").substring(2); + } + + + /** + * 比较2个map + * + * @param batchMap + * @param batchMap1 + * @return + */ + public static boolean equalMap(Map batchMap, Map batchMap1) { + if (batchMap.size() != batchMap1.size()) { + return false; + } + Iterator iter1 = batchMap.keySet().iterator(); + while (iter1.hasNext()) { + Long map1key = iter1.next(); + String map1value = batchMap.get(map1key).toString(); + String map2value = batchMap1.get(map1key).toString(); + if (!map1value.equals(map2value)) { + return false; + } + } + return true; + } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java new file mode 100644 index 0000000..4670df3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 集中器相关日志 + */ +public class ProjectDict extends AbstractDictMap { + public static final String PROJECT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + @Override + public void init() { + put("projectName","项目名称"); + put("projectSimpleName","项目简称"); + put("projectManager","项目经理"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java new file mode 100644 index 0000000..7981a17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dto; + +/** + * 用于设备类型展示 + * @author test203 + * @date 2020-04-03 + */ +public class DeviceTypeDto { + private Long id; + private String productName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java new file mode 100644 index 0000000..f254585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java @@ -0,0 +1,361 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.math.BigDecimal; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; + +/** + *

+ * 管理员表 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@TableName("sys_user") +public class Account extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + /** + * 头像 + */ + private String avatar; + /** + * 账号 + */ + private String account; + /** + * 密码 + */ + private String password; + /** + * md5密码盐 + */ + private String salt; + /** + * 名字 + */ + private String name; + /** + * 生日 + */ + private Date birthday; + /** + * 性别(1:男 2:女) + */ + private String sex; + /** + * 电子邮件 + */ + private String email; + /** + * 电话 + */ + private String phone; + /** + * 角色id + */ + private String roleid; + /** + * 部门id + */ + private Long deptid; + /** + * 状态(1:启用 2:冻结 3:删除) + */ + private String status; + /** + * 创建时间 + */ + private Date createtime; + /** + * 保留字段 + */ + private Integer version; + private String targetid; + private String targetname; + @TableField("password_sync") + private String passwordSync; + @TableField("IS_SYNC") + private Integer isSync; + private String simplename; + /** + * 同步组织ID + */ + @TableField("TARGET_DEPTID_SYNC") + private String targetDeptidSync; + @TableField("LOGIN_IP") + private String loginIp; + @TableField("LOGIN_MAC") + private String loginMac; + /** + * 最后在线时间 + */ + @TableField("LAST_TIME") + private Date lastTime; + /** + * 经度 + */ + @TableField("POSITION_LNG") + private BigDecimal positionLng; + /** + * 纬度 + */ + @TableField("POSITION_LAT") + private BigDecimal positionLat; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt() { + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getRoleid() { + return roleid; + } + + public void setRoleid(String roleid) { + this.roleid = roleid; + } + + public Long getDeptid() { + return deptid; + } + + public void setDeptid(Long deptid) { + this.deptid = deptid; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + public String getTargetid() { + return targetid; + } + + public void setTargetid(String targetid) { + this.targetid = targetid; + } + + public String getTargetname() { + return targetname; + } + + public void setTargetname(String targetname) { + this.targetname = targetname; + } + + public String getPasswordSync() { + return passwordSync; + } + + public void setPasswordSync(String passwordSync) { + this.passwordSync = passwordSync; + } + + public Integer getIsSync() { + return isSync; + } + + public void setIsSync(Integer isSync) { + this.isSync = isSync; + } + + public String getSimplename() { + return simplename; + } + + public void setSimplename(String simplename) { + this.simplename = simplename; + } + + public String getTargetDeptidSync() { + return targetDeptidSync; + } + + public void setTargetDeptidSync(String targetDeptidSync) { + this.targetDeptidSync = targetDeptidSync; + } + + public String getLoginIp() { + return loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getLoginMac() { + return loginMac; + } + + public void setLoginMac(String loginMac) { + this.loginMac = loginMac; + } + + public Date getLastTime() { + return lastTime; + } + + public void setLastTime(Date lastTime) { + this.lastTime = lastTime; + } + + public BigDecimal getPositionLng() { + return positionLng; + } + + public void setPositionLng(BigDecimal positionLng) { + this.positionLng = positionLng; + } + + public BigDecimal getPositionLat() { + return positionLat; + } + + public void setPositionLat(BigDecimal positionLat) { + this.positionLat = positionLat; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", avatar=" + avatar + + ", account=" + account + + ", password=" + password + + ", salt=" + salt + + ", name=" + name + + ", birthday=" + birthday + + ", sex=" + sex + + ", email=" + email + + ", phone=" + phone + + ", roleid=" + roleid + + ", deptid=" + deptid + + ", status=" + status + + ", createtime=" + createtime + + ", version=" + version + + ", targetid=" + targetid + + ", targetname=" + targetname + + ", passwordSync=" + passwordSync + + ", isSync=" + isSync + + ", simplename=" + simplename + + ", targetDeptidSync=" + targetDeptidSync + + ", loginIp=" + loginIp + + ", loginMac=" + loginMac + + ", lastTime=" + lastTime + + ", positionLng=" + positionLng + + ", positionLat=" + positionLat + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java new file mode 100644 index 0000000..81516b7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -0,0 +1,110 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_batch") +public class Batch extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_number") + private Long batchNumber; + @TableField("batch_count") + private Long batchCount; + @TableField("contract_id") + private Long contractId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("task_id") + private Long taskId; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(Long batchNumber) { + this.batchNumber = batchNumber; + } + + public Long getBatchCount() { + return batchCount; + } + + public void setBatchCount(Long batchCount) { + this.batchCount = batchCount; + } + + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Batch{" + + "id=" + id + + ", batchNumber=" + batchNumber + + ", batchCount=" + batchCount + + ", contractId=" + contractId + + ", taskId=" + taskId + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java new file mode 100644 index 0000000..893a1ed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -0,0 +1,186 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_contract") +public class Contract extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("contract_number") + private String contractNumber; + @TableField("contract_name") + private String contractName; + @TableField("contract_content") + private String contractContent; + @TableField("contract_amount") + private String contractAmount; + @TableField("external_project_apply") + private String externalProjectApply; + @TableField("external_contract_apply") + private String externalContractApply; + @TableField("principal") + private String principal; + @TableField("external_check_apply") + private String externalCheckApply; + @TableField("contract_factory") + private String contractFactory; + @TableField("createtime") + private Date createtime; + @TableField(exist = false) + private String paymentStatus; + @TableField(exist = false) + private String netFlow; + @TableField("deptid") + private String deptid; + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getContractName() { + return contractName; + } + + public void setContractName(String contractName) { + this.contractName = contractName; + } + + public String getContractContent() { + return contractContent; + } + + public void setContractContent(String contractContent) { + this.contractContent = contractContent; + } + + public String getContractAmount() { + return contractAmount; + } + + public void setContractAmount(String contractAmount) { + this.contractAmount = contractAmount; + } + + public String getExternalProjectApply() { + return externalProjectApply; + } + + public void setExternalProjectApply(String externalProjectApply) { + this.externalProjectApply = externalProjectApply; + } + + public String getExternalContractApply() { + return externalContractApply; + } + + public void setExternalContractApply(String externalContractApply) { + this.externalContractApply = externalContractApply; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalCheckApply() { + return externalCheckApply; + } + + public void setExternalCheckApply(String externalCheckApply) { + this.externalCheckApply = externalCheckApply; + } + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public String getContractFactory() { + return contractFactory; + } + + public void setContractFactory(String contractFactory) { + this.contractFactory = contractFactory; + } + + public String getNetFlow() { + return netFlow; + } + + public void setNetFlow(String netFlow) { + this.netFlow = netFlow; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Contract{" + + "contractNumber=" + contractNumber + + ", contractName=" + contractName + + ", contractContent=" + contractContent + + ", contractAmount=" + contractAmount + + ", externalProjectApply=" + externalProjectApply + + ", externalContractApply=" + externalContractApply + + ", principal=" + principal + + ", id=" + id + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java new file mode 100644 index 0000000..8718d91 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -0,0 +1,150 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_device") +public class Device extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_id") + private Long batchId; + private String devcode; + @TableField("devtype_id") + private Long devtypeId; + @TableField("is_send") + private String isSend; + private String longitude; + private String latitude; + @TableField("install_height") + private String installHeight; + private String iccid; + private Long imei; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public Long getImei() { + return imei; + } + + public void setImei(Long imei) { + this.imei = imei; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Device{" + + "id=" + id + + ", batchId=" + batchId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", isSend=" + isSend + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", installHeight=" + installHeight + + ", iccid=" + iccid + + ", imei=" + imei + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java new file mode 100644 index 0000000..870c36f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_payments") +public class Payments extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @TableField("paytime") + private Date paytime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getPaytime() { + return paytime; + } + + public void setPaytime(Date paytime) { + this.paytime = paytime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Payments{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", paytime=" + paytime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java new file mode 100644 index 0000000..ae6b585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -0,0 +1,285 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_device_type") +public class ProductDeviceType extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 产品名称 + */ + @TableField("product_name") + private String productName; + /** + * 产品型号 + */ + @TableField("product_model") + private String productModel; + + /** + * 通讯版本号 + */ + @TableField("communication_version") + private String communicationVersion; + + /** + * 产品类型 + */ + @TableField("product_type") + private String productType; + + /** + * 整机版本号 + */ + @TableField("machine_version") + private String machineVersion; + /** + * 硬件版本号 + */ + @TableField("hardware_version") + private String hardwareVersion; + /** + * 软件版本号 + */ + @TableField("software_version") + private String softwareVersion; + /** + * 设计归档 + */ + @TableField("design_archive") + private String designArchive; + /** + * 批产归档 + */ + @TableField("batch_filing") + private String batchFiling; + /** + * 状态 + */ + @TableField("status") + private Integer status; + /** + * 性能指标 + */ + @TableField("kpi") + private String kpi; + /** + * 批产负责人 + */ + @TableField("principal") + private String principal; + /** + * 定额汇总表 + */ + @TableField("quota_summary") + private String quotaSummary; + + /** + * 权属部门 + */ + @TableField("deptid") + private String deptid; + + /** + * 备注 + */ + @TableField("descn") + private String descn; + + @TableField("createtime") + private Date createtime; + + + @TableField(exist = false) + private String statusFmt; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } + + public String getMachineVersion() { + return machineVersion; + } + + public void setMachineVersion(String machineVersion) { + this.machineVersion = machineVersion; + } + + public String getHardwareVersion() { + return hardwareVersion; + } + + public void setHardwareVersion(String hardwareVersion) { + this.hardwareVersion = hardwareVersion; + } + + public String getSoftwareVersion() { + return softwareVersion; + } + + public void setSoftwareVersion(String softwareVersion) { + this.softwareVersion = softwareVersion; + } + + public String getDesignArchive() { + return designArchive; + } + + public void setDesignArchive(String designArchive) { + this.designArchive = designArchive; + } + + public String getBatchFiling() { + return batchFiling; + } + + public void setBatchFiling(String batchFiling) { + this.batchFiling = batchFiling; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getKpi() { + return kpi; + } + + public void setKpi(String kpi) { + this.kpi = kpi; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public String getQuotaSummary() { + return quotaSummary; + } + + public void setQuotaSummary(String quotaSummary) { + this.quotaSummary = quotaSummary; + } + + public String getStatusFmt() { + return statusFmt; + } + + public void setStatusFmt(String statusFmt) { + this.statusFmt = statusFmt; + } + + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getProductType() { + return productType; + } + + public void setProductType(String productType) { + this.productType = productType; + } + + public String getCommunicationVersion() { + return communicationVersion; + } + + public void setCommunicationVersion(String communicationVersion) { + this.communicationVersion = communicationVersion; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductDeviceType{" + + "id=" + id + + ", productName=" + productName + + ", productModel=" + productModel + + ", machineVersion=" + machineVersion + + ", hardwareVersion=" + hardwareVersion + + ", softwareVersion=" + softwareVersion + + ", designArchive=" + designArchive + + ", batchFiling=" + batchFiling + + ", status=" + status + + ", kpi=" + kpi + + ", principal=" + principal + + ", quotaSummary=" + quotaSummary + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java new file mode 100644 index 0000000..b0fd924 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java @@ -0,0 +1,187 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_factory_information") +public class ProductFactoryInformation extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 厂家名称 + */ + @TableField("name") + private String name; + /** + * 厂家联系人 + */ + @TableField("person_name") + private String personName; + /** + * 地址 + */ + @TableField("address") + private String address; + /** + * 电话 + */ + @TableField("phone") + private String phone; + /** + * 开户行 + */ + @TableField("bank") + private String bank; + /** + * 税号 + */ + @TableField("tax_number") + private String taxNumber; + /** + * 在产设备 + */ + @TableField("producting_device") + private String productingDevice; + /** + * 设备报价表 + */ + @TableField("equipment_quotation") + private String equipmentQuotation; + + @TableField("createtime") + private Date createtime =new Date(); + + @TableField("deptid") + private String deptid; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPersonName() { + return personName; + } + + public void setPersonName(String personName) { + this.personName = personName; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getBank() { + return bank; + } + + public void setBank(String bank) { + this.bank = bank; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getProductingDevice() { + return productingDevice; + } + + public void setProductingDevice(String productingDevice) { + this.productingDevice = productingDevice; + } + + public String getEquipmentQuotation() { + return equipmentQuotation; + } + + public void setEquipmentQuotation(String equipmentQuotation) { + this.equipmentQuotation = equipmentQuotation; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductFactoryInformation{" + + "id=" + id + + ", name=" + name + + ", personName=" + personName + + ", address=" + address + + ", phone=" + phone + + ", bank=" + bank + + ", taxNumber=" + taxNumber + + ", productingDevice=" + productingDevice + + ", equipmentQuotation=" + equipmentQuotation + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java new file mode 100644 index 0000000..00cbc92 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -0,0 +1,99 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@TableName("product_project") +public class Project extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_name") + private String projectName; + @TableField("project_simple_name") + private String projectSimpleName; + @TableField("project_manager") + private String projectManager; + private String descn; + @TableField("createtime") + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getProjectManager() { + return projectManager; + } + + public void setProjectManager(String projectManager) { + this.projectManager = projectManager; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Project{" + + "id=" + id + + ", projectName=" + projectName + + ", projectSimpleName=" + projectSimpleName + + ", projectManager=" + projectManager + + ", descn=" + descn + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java new file mode 100644 index 0000000..658c2e1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java @@ -0,0 +1,126 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_reimburse") +public class Reimburse extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mi:ss") + @TableField("reimburse_time") + private Date reimburseTime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getReimburseTime() { + return reimburseTime; + } + + public void setReimburseTime(Date reimburseTime) { + this.reimburseTime = reimburseTime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Reimburse{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", reimburseTime=" + reimburseTime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java new file mode 100644 index 0000000..987efa7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java @@ -0,0 +1,141 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_task") +public class Task extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_id") + private Long projectId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("devmode_id") + private String devmodeId; + private Long devcount; + @TableField("delivery_time") + private Date deliveryTime; + private String demand; + private Date createtime; + @TableField(exist = false) + private String deliveryTimeFmt; + + @TableField(exist = false) + private Long taskId; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getProjectId() { + return projectId; + } + + public void setProjectId(Long projectId) { + this.projectId = projectId; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDevmodeId() { + return devmodeId; + } + + public void setDevmodeId(String devmodeId) { + this.devmodeId = devmodeId; + } + + public Long getDevcount() { + return devcount; + } + + public void setDevcount(Long devcount) { + this.devcount = devcount; + } + + public Date getDeliveryTime() { + return deliveryTime; + } + + public void setDeliveryTime(Date deliveryTime) { + this.deliveryTime = deliveryTime; + } + + public String getDemand() { + return demand; + } + + public void setDemand(String demand) { + this.demand = demand; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeliveryTimeFmt() { + return deliveryTimeFmt; + } + + public void setDeliveryTimeFmt(String deliveryTimeFmt) { + this.deliveryTimeFmt = deliveryTimeFmt; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Task{" + + "id=" + id + + ", projectId=" + projectId + + ", devtypeId=" + devtypeId + + ", devmodeId=" + devmodeId + + ", devcount=" + devcount + + ", deliveryTime=" + deliveryTime + + ", demand=" + demand + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java new file mode 100644 index 0000000..7785de5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface IAccountService extends IService { + + /** + * 根据用户名查用户 + * @param userName + * @return + */ + Account findUserByName(String userName); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java new file mode 100644 index 0000000..d8b5e87 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IContractService extends IService { + List selectPageList(Page page, String keyword1, String keyword2, String keyword3); + List reportExport(String keyword1, String keyword2, String keyword3); + void importContract( List contracts); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java new file mode 100644 index 0000000..0f2d6e0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IPaymentsService extends IService { + + boolean validate(Long proId,String money,String reorder); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java new file mode 100644 index 0000000..71490df --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -0,0 +1,62 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductDeviceTypeService extends IService { + + /** + * 批量导入设备类型列表 + * @param results + */ + void importDeviceType(List results); + + /** + * 导出列表 + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List reportExport(String keyword1,String keyword2,String keyword3); + + + /** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectPageDataScope(DataScope dataScope, Page page, + String keyword1, String keyword2, String keyword3); + + /** + * 获取在产的设备类型 + * @return + */ + List selectDeviceTypeList(); + + /** + * 根据产品型号获取产品 + * @param deviceModel + * @return + */ + ProductDeviceType selectDeviceTypeByModel(String deviceModel); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java new file mode 100644 index 0000000..455f60a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductFactoryInformationService extends IService { + /** + * 根据条件导出列表 + * @param keyword1 + * @param keyword2 + * @return + */ + List reportExport(String keyword1, String keyword2); + + + /** + * 导入 + * @param results + */ + void importDeviceType(List results); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java new file mode 100644 index 0000000..3c27bd1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface IProjectService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java new file mode 100644 index 0000000..ee0a55c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IReimburseService extends IService { + boolean validate(Long proId,String money,String reorder); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java new file mode 100644 index 0000000..09ce653 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.dao.AccountMapper; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.stereotype.Service; + +/** + *

+ * 管理员表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@Service +public class AccountServiceImpl extends ServiceImpl implements IAccountService { + + @Override + public Account findUserByName(String userName) { + + EntityWrapper userEntityWrapper = new EntityWrapper<>(); + userEntityWrapper.eq("name",userName); + userEntityWrapper.eq("status","1"); + return this.selectOne(userEntityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java new file mode 100644 index 0000000..dd04da0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java @@ -0,0 +1,138 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.shiro.ShiroUser; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ContractMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IPaymentsService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ContractServiceImpl extends ServiceImpl implements IContractService { + @Autowired + private IPaymentsService paymentsService; + @Autowired + private ICommonPermissionService permissionService; + @Autowired + private IAccountService userService; + @Value("${casic.producerName}") + private String producerName; + @Value("${casic.repairName}") + private String repairName; + + @Override + public List selectPageList(Page page, String keyword1, String keyword2, String keyword3) { + +// EntityWrapper query = new EntityWrapper<>(); +// if (ToolUtil.isNotEmpty(keyword1)) { +// query.like("contract_factory", keyword1); +// } +// if (ToolUtil.isNotEmpty(keyword3)) { +// query.like("contract_number", keyword3); +// } +// List contractList = this.selectPage(page, query).getRecords(); +// contractList.forEach(contract -> { +// contract.setPaymentStatus(getPaymentStatus(contract)); +// String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" +// + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" +// + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); +// contract.setNetFlow(netFlowStr); +// +// }); +// return contractList; + + + List contractList = new ArrayList<>(); + DataScope dataScope = permissionService.getCurrUserDataScope(); + ShiroUser currentUser = permissionService.getCurrLoginUser(); + if (currentUser.getRoleTips().contains(producerName) || currentUser.getRoleTips().contains(repairName)) { + contractList = this.baseMapper.findContractList(dataScope,page, currentUser.getName(), keyword1, keyword2, keyword3); + } else { + contractList = this.baseMapper.findContractList(dataScope,page, "", keyword1, keyword2, keyword3); + } + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + + }); + return contractList; + } + + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + + + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("contractFactory", keyword1); + } + if (ToolUtil.isNotEmpty(keyword3)) { + query.like("contract_number", keyword3); + } + + List contractList = this.selectList(query); + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); +// permissionService.findInDictByCode("applyStatus") + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + }); + + return contractList; + } + + @Override + public void importContract(List contracts) { + contracts.forEach(contract -> { + EntityWrapper query = new EntityWrapper<>(); + query.eq("contract_number", contract.getContractNumber()); + this.delete(query); + Account user = userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); + this.insert(contract); + }); + } + + public String getPaymentStatus(Contract contract) { + Map paraMap = new HashMap<>(); + paraMap.put("pro_id", contract.getId()); + List paymentsList = paymentsService.selectByMap(paraMap); + float sum = 0; + for (Payments payments : paymentsList) { + sum = sum + (ToolUtil.isNotEmpty(payments.getMoney()) ? Float.parseFloat(payments.getMoney()) : 0); + } + DecimalFormat df = new DecimalFormat("0"); + return sum + "," + df.format(100 * sum / Float.valueOf(contract.getContractAmount())) + "%"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java new file mode 100644 index 0000000..0c125d8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PaymentsMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class PaymentsServiceImpl extends ServiceImpl implements IPaymentsService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money,String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List paymentsList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Payments payments : paymentsList) { + if(reorder.equals(payments.getReorder())) continue; + total += ToolUtil.isNotEmpty(payments.getMoney()) ? + Long.valueOf(payments.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java new file mode 100644 index 0000000..ac6d447 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductDeviceTypeMapper; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.swing.text.html.parser.Entity; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductDeviceTypeServiceImpl extends ServiceImpl implements IProductDeviceTypeService { + + @Autowired + private ICommonPermissionService permissionService; + + @Transactional(rollbackFor = Exception.class) + @Override + public void importDeviceType(List results) { + + for (ProductDeviceType productDeviceType : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + this.baseMapper.delete(wrapper); + this.baseMapper.insert(productDeviceType); + } + } + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + wrapper.like("principal", keyword3); + } + List productDeviceTypes = this.selectList(wrapper); + for (ProductDeviceType productDeviceType : productDeviceTypes) { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + } + return productDeviceTypes; + } + + @Override + public List selectPageDataScope(DataScope dataScope, Page page, String keyword1, String keyword2, String keyword3) { + + List productDeviceTypeList = this.baseMapper.selectDataScopePage(dataScope, page, keyword1, keyword2, keyword3); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + return productDeviceTypeList; + + } + + @Override + public List selectDeviceTypeList() { + return this.baseMapper.selectDeviceTypeList(); + } + + + @Override + public ProductDeviceType selectDeviceTypeByModel(String deviceModel) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("product_model",deviceModel); + return this.selectOne(entityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java new file mode 100644 index 0000000..efe4410 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java @@ -0,0 +1,50 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductFactoryInformationMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductFactoryInformationServiceImpl extends ServiceImpl implements IProductFactoryInformationService { + + @Override + public List reportExport(String keyword1, String keyword2) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.like("producting_device", keyword2); + } + List productFactoryInformations = this.selectList(wrapper); + + return productFactoryInformations; + } + + + @Transactional(rollbackFor=Exception.class) + @Override + public void importDeviceType(List results) { + for (ProductFactoryInformation productFactoryInformation : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + delete(wrapper); + this.baseMapper.insert(productFactoryInformation); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java new file mode 100644 index 0000000..34655b0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.dao.ProjectMapper; +import com.casic.missiles.modular.system.service.IProjectService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@Service +public class ProjectServiceImpl extends ServiceImpl implements IProjectService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java new file mode 100644 index 0000000..5e8b77b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java @@ -0,0 +1,48 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.dao.ReimburseMapper; +import com.casic.missiles.modular.system.service.IReimburseService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ReimburseServiceImpl extends ServiceImpl implements IReimburseService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money, String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List reimburseList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Reimburse reimburse : reimburseList) { + if (reorder.equals(reimburse.getReorder())) continue; + total += ToolUtil.isNotEmpty(reimburse.getMoney()) ? + Long.valueOf(reimburse.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java new file mode 100644 index 0000000..d5ffadb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java @@ -0,0 +1,235 @@ +package com.casic.missiles.modular.system.util; + +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; + +import java.util.*; + +/** + * @author test203 + * @since 2020-04-06 + */ +public class DeviceUtil { + private final static String factoryCode = "20"; + private final static String wellExcludeCode = "4120"; + private final static String loraDevice = "A"; + private static Map devTypeCountHashMap = new HashMap(); + + static { + devTypeCountHashMap.put("电子标识器", 99999L); + devTypeCountHashMap.put("井盖状态监测仪", 65534L); + devTypeCountHashMap.put("灯箱控制器", 65535L); + devTypeCountHashMap.put("单灯控制器(单路)", 65535L); + devTypeCountHashMap.put("单灯控制器(双路)", 65535L); + devTypeCountHashMap.put("数据集中器", 255L); + devTypeCountHashMap.put("有害气体监测仪", 999L); + } + + public static List createDevCodes(ProductDeviceType deviceType, List batches) { + List deviceList = new ArrayList<>(); + try { + if ("电子标识器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 年份XX 批次号XX 编号XXXXX + String devCode = deviceType.getProductType() + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%05d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("井盖状态监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + String wellCode4 = String.format("%04x", i); + if (wellExcludeCode.equals(wellCode4)) { + continue; + } + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + wellCode4; + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("灯箱控制器".equals(deviceType.getProductName()) || + "单灯控制器(单路)".equals(deviceType.getProductName()) || + "单灯控制器(双路)".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("数据集中器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("有害气体监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型WS2000X- 年份XX 批次序号XXXX 编号XXX + String devCode = deviceType.getProductType() + + getYearFmt() + + String.format("%04d", batch.getBatchNumber()) + + String.format("%03d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } + //其他设备类型分lora和非lora版本 + else { + if (loraDevice.equals(deviceType.getCommunicationVersion())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } else { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return deviceList; + } + + + public static Map validate(ProductDeviceType deviceType, List batches, Task task) { + Map resultMap = new HashMap<>(); + boolean success = true; + String msg = ""; + long devSum = null != task ? task.getDevcount() : 0; + long devcount = 0, batchCountMax; + batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? + 0 : devTypeCountHashMap.get(deviceType.getProductName()); + if (0 == batchCountMax) { + if (deviceType.getProductModel().indexOf(loraDevice) + == deviceType.getProductModel().length() - 1) { + batchCountMax = 255; + } else { + batchCountMax = 9999; + } + } + for (Batch batch : batches) { + if (batch.getBatchCount() > batchCountMax) { + success = false; + msg = batch.getBatchNumber() + "批次号数量超过了最大范围" + batchCountMax; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + devcount += batch.getBatchCount(); + } + if (devcount != devSum) { + return returnMsg(); + } + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + + public static Map returnMsg() { + Map resultMap = new HashMap<>(); + resultMap.put("success", false); + resultMap.put("msg", "所有批次数量之和与任务中设备数量不一致!"); + return resultMap; + } + + /** + * 获取编码中的年份 + * + * @return + */ + public static String getYearFmt() { + + return DateUtil.format(new Date(), "yyyy").substring(2); + } + + + /** + * 比较2个map + * + * @param batchMap + * @param batchMap1 + * @return + */ + public static boolean equalMap(Map batchMap, Map batchMap1) { + if (batchMap.size() != batchMap1.size()) { + return false; + } + Iterator iter1 = batchMap.keySet().iterator(); + while (iter1.hasNext()) { + Long map1key = iter1.next(); + String map1value = batchMap.get(map1key).toString(); + String map2value = batchMap1.get(map1key).toString(); + if (!map1value.equals(map2value)) { + return false; + } + } + return true; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java new file mode 100644 index 0000000..33c3535 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java @@ -0,0 +1,43 @@ +package com.casic.missiles.modular.system.util; + +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; + +public class FileUtil { + public static File createFile(String path) throws IOException { + File file = new File(path); + if (!file.exists()) { + file.getParentFile().mkdirs(); + file.createNewFile(); + } + return file; + } + + + public static void downloadLocalFile(HttpServletResponse response,String path, String fileName) throws IOException { + File file = new File(path); + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", "attachment; filename=\"" + URLEncoder.encode(fileName, "UTF-8") + "\""); + response.setContentLength((int) file.length()); + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java new file mode 100644 index 0000000..4670df3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 集中器相关日志 + */ +public class ProjectDict extends AbstractDictMap { + public static final String PROJECT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + @Override + public void init() { + put("projectName","项目名称"); + put("projectSimpleName","项目简称"); + put("projectManager","项目经理"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java new file mode 100644 index 0000000..7981a17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dto; + +/** + * 用于设备类型展示 + * @author test203 + * @date 2020-04-03 + */ +public class DeviceTypeDto { + private Long id; + private String productName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java new file mode 100644 index 0000000..f254585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java @@ -0,0 +1,361 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.math.BigDecimal; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; + +/** + *

+ * 管理员表 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@TableName("sys_user") +public class Account extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + /** + * 头像 + */ + private String avatar; + /** + * 账号 + */ + private String account; + /** + * 密码 + */ + private String password; + /** + * md5密码盐 + */ + private String salt; + /** + * 名字 + */ + private String name; + /** + * 生日 + */ + private Date birthday; + /** + * 性别(1:男 2:女) + */ + private String sex; + /** + * 电子邮件 + */ + private String email; + /** + * 电话 + */ + private String phone; + /** + * 角色id + */ + private String roleid; + /** + * 部门id + */ + private Long deptid; + /** + * 状态(1:启用 2:冻结 3:删除) + */ + private String status; + /** + * 创建时间 + */ + private Date createtime; + /** + * 保留字段 + */ + private Integer version; + private String targetid; + private String targetname; + @TableField("password_sync") + private String passwordSync; + @TableField("IS_SYNC") + private Integer isSync; + private String simplename; + /** + * 同步组织ID + */ + @TableField("TARGET_DEPTID_SYNC") + private String targetDeptidSync; + @TableField("LOGIN_IP") + private String loginIp; + @TableField("LOGIN_MAC") + private String loginMac; + /** + * 最后在线时间 + */ + @TableField("LAST_TIME") + private Date lastTime; + /** + * 经度 + */ + @TableField("POSITION_LNG") + private BigDecimal positionLng; + /** + * 纬度 + */ + @TableField("POSITION_LAT") + private BigDecimal positionLat; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt() { + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getRoleid() { + return roleid; + } + + public void setRoleid(String roleid) { + this.roleid = roleid; + } + + public Long getDeptid() { + return deptid; + } + + public void setDeptid(Long deptid) { + this.deptid = deptid; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + public String getTargetid() { + return targetid; + } + + public void setTargetid(String targetid) { + this.targetid = targetid; + } + + public String getTargetname() { + return targetname; + } + + public void setTargetname(String targetname) { + this.targetname = targetname; + } + + public String getPasswordSync() { + return passwordSync; + } + + public void setPasswordSync(String passwordSync) { + this.passwordSync = passwordSync; + } + + public Integer getIsSync() { + return isSync; + } + + public void setIsSync(Integer isSync) { + this.isSync = isSync; + } + + public String getSimplename() { + return simplename; + } + + public void setSimplename(String simplename) { + this.simplename = simplename; + } + + public String getTargetDeptidSync() { + return targetDeptidSync; + } + + public void setTargetDeptidSync(String targetDeptidSync) { + this.targetDeptidSync = targetDeptidSync; + } + + public String getLoginIp() { + return loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getLoginMac() { + return loginMac; + } + + public void setLoginMac(String loginMac) { + this.loginMac = loginMac; + } + + public Date getLastTime() { + return lastTime; + } + + public void setLastTime(Date lastTime) { + this.lastTime = lastTime; + } + + public BigDecimal getPositionLng() { + return positionLng; + } + + public void setPositionLng(BigDecimal positionLng) { + this.positionLng = positionLng; + } + + public BigDecimal getPositionLat() { + return positionLat; + } + + public void setPositionLat(BigDecimal positionLat) { + this.positionLat = positionLat; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", avatar=" + avatar + + ", account=" + account + + ", password=" + password + + ", salt=" + salt + + ", name=" + name + + ", birthday=" + birthday + + ", sex=" + sex + + ", email=" + email + + ", phone=" + phone + + ", roleid=" + roleid + + ", deptid=" + deptid + + ", status=" + status + + ", createtime=" + createtime + + ", version=" + version + + ", targetid=" + targetid + + ", targetname=" + targetname + + ", passwordSync=" + passwordSync + + ", isSync=" + isSync + + ", simplename=" + simplename + + ", targetDeptidSync=" + targetDeptidSync + + ", loginIp=" + loginIp + + ", loginMac=" + loginMac + + ", lastTime=" + lastTime + + ", positionLng=" + positionLng + + ", positionLat=" + positionLat + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java new file mode 100644 index 0000000..81516b7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -0,0 +1,110 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_batch") +public class Batch extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_number") + private Long batchNumber; + @TableField("batch_count") + private Long batchCount; + @TableField("contract_id") + private Long contractId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("task_id") + private Long taskId; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(Long batchNumber) { + this.batchNumber = batchNumber; + } + + public Long getBatchCount() { + return batchCount; + } + + public void setBatchCount(Long batchCount) { + this.batchCount = batchCount; + } + + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Batch{" + + "id=" + id + + ", batchNumber=" + batchNumber + + ", batchCount=" + batchCount + + ", contractId=" + contractId + + ", taskId=" + taskId + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java new file mode 100644 index 0000000..893a1ed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -0,0 +1,186 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_contract") +public class Contract extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("contract_number") + private String contractNumber; + @TableField("contract_name") + private String contractName; + @TableField("contract_content") + private String contractContent; + @TableField("contract_amount") + private String contractAmount; + @TableField("external_project_apply") + private String externalProjectApply; + @TableField("external_contract_apply") + private String externalContractApply; + @TableField("principal") + private String principal; + @TableField("external_check_apply") + private String externalCheckApply; + @TableField("contract_factory") + private String contractFactory; + @TableField("createtime") + private Date createtime; + @TableField(exist = false) + private String paymentStatus; + @TableField(exist = false) + private String netFlow; + @TableField("deptid") + private String deptid; + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getContractName() { + return contractName; + } + + public void setContractName(String contractName) { + this.contractName = contractName; + } + + public String getContractContent() { + return contractContent; + } + + public void setContractContent(String contractContent) { + this.contractContent = contractContent; + } + + public String getContractAmount() { + return contractAmount; + } + + public void setContractAmount(String contractAmount) { + this.contractAmount = contractAmount; + } + + public String getExternalProjectApply() { + return externalProjectApply; + } + + public void setExternalProjectApply(String externalProjectApply) { + this.externalProjectApply = externalProjectApply; + } + + public String getExternalContractApply() { + return externalContractApply; + } + + public void setExternalContractApply(String externalContractApply) { + this.externalContractApply = externalContractApply; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalCheckApply() { + return externalCheckApply; + } + + public void setExternalCheckApply(String externalCheckApply) { + this.externalCheckApply = externalCheckApply; + } + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public String getContractFactory() { + return contractFactory; + } + + public void setContractFactory(String contractFactory) { + this.contractFactory = contractFactory; + } + + public String getNetFlow() { + return netFlow; + } + + public void setNetFlow(String netFlow) { + this.netFlow = netFlow; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Contract{" + + "contractNumber=" + contractNumber + + ", contractName=" + contractName + + ", contractContent=" + contractContent + + ", contractAmount=" + contractAmount + + ", externalProjectApply=" + externalProjectApply + + ", externalContractApply=" + externalContractApply + + ", principal=" + principal + + ", id=" + id + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java new file mode 100644 index 0000000..8718d91 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -0,0 +1,150 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_device") +public class Device extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_id") + private Long batchId; + private String devcode; + @TableField("devtype_id") + private Long devtypeId; + @TableField("is_send") + private String isSend; + private String longitude; + private String latitude; + @TableField("install_height") + private String installHeight; + private String iccid; + private Long imei; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public Long getImei() { + return imei; + } + + public void setImei(Long imei) { + this.imei = imei; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Device{" + + "id=" + id + + ", batchId=" + batchId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", isSend=" + isSend + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", installHeight=" + installHeight + + ", iccid=" + iccid + + ", imei=" + imei + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java new file mode 100644 index 0000000..870c36f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_payments") +public class Payments extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @TableField("paytime") + private Date paytime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getPaytime() { + return paytime; + } + + public void setPaytime(Date paytime) { + this.paytime = paytime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Payments{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", paytime=" + paytime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java new file mode 100644 index 0000000..ae6b585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -0,0 +1,285 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_device_type") +public class ProductDeviceType extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 产品名称 + */ + @TableField("product_name") + private String productName; + /** + * 产品型号 + */ + @TableField("product_model") + private String productModel; + + /** + * 通讯版本号 + */ + @TableField("communication_version") + private String communicationVersion; + + /** + * 产品类型 + */ + @TableField("product_type") + private String productType; + + /** + * 整机版本号 + */ + @TableField("machine_version") + private String machineVersion; + /** + * 硬件版本号 + */ + @TableField("hardware_version") + private String hardwareVersion; + /** + * 软件版本号 + */ + @TableField("software_version") + private String softwareVersion; + /** + * 设计归档 + */ + @TableField("design_archive") + private String designArchive; + /** + * 批产归档 + */ + @TableField("batch_filing") + private String batchFiling; + /** + * 状态 + */ + @TableField("status") + private Integer status; + /** + * 性能指标 + */ + @TableField("kpi") + private String kpi; + /** + * 批产负责人 + */ + @TableField("principal") + private String principal; + /** + * 定额汇总表 + */ + @TableField("quota_summary") + private String quotaSummary; + + /** + * 权属部门 + */ + @TableField("deptid") + private String deptid; + + /** + * 备注 + */ + @TableField("descn") + private String descn; + + @TableField("createtime") + private Date createtime; + + + @TableField(exist = false) + private String statusFmt; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } + + public String getMachineVersion() { + return machineVersion; + } + + public void setMachineVersion(String machineVersion) { + this.machineVersion = machineVersion; + } + + public String getHardwareVersion() { + return hardwareVersion; + } + + public void setHardwareVersion(String hardwareVersion) { + this.hardwareVersion = hardwareVersion; + } + + public String getSoftwareVersion() { + return softwareVersion; + } + + public void setSoftwareVersion(String softwareVersion) { + this.softwareVersion = softwareVersion; + } + + public String getDesignArchive() { + return designArchive; + } + + public void setDesignArchive(String designArchive) { + this.designArchive = designArchive; + } + + public String getBatchFiling() { + return batchFiling; + } + + public void setBatchFiling(String batchFiling) { + this.batchFiling = batchFiling; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getKpi() { + return kpi; + } + + public void setKpi(String kpi) { + this.kpi = kpi; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public String getQuotaSummary() { + return quotaSummary; + } + + public void setQuotaSummary(String quotaSummary) { + this.quotaSummary = quotaSummary; + } + + public String getStatusFmt() { + return statusFmt; + } + + public void setStatusFmt(String statusFmt) { + this.statusFmt = statusFmt; + } + + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getProductType() { + return productType; + } + + public void setProductType(String productType) { + this.productType = productType; + } + + public String getCommunicationVersion() { + return communicationVersion; + } + + public void setCommunicationVersion(String communicationVersion) { + this.communicationVersion = communicationVersion; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductDeviceType{" + + "id=" + id + + ", productName=" + productName + + ", productModel=" + productModel + + ", machineVersion=" + machineVersion + + ", hardwareVersion=" + hardwareVersion + + ", softwareVersion=" + softwareVersion + + ", designArchive=" + designArchive + + ", batchFiling=" + batchFiling + + ", status=" + status + + ", kpi=" + kpi + + ", principal=" + principal + + ", quotaSummary=" + quotaSummary + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java new file mode 100644 index 0000000..b0fd924 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java @@ -0,0 +1,187 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_factory_information") +public class ProductFactoryInformation extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 厂家名称 + */ + @TableField("name") + private String name; + /** + * 厂家联系人 + */ + @TableField("person_name") + private String personName; + /** + * 地址 + */ + @TableField("address") + private String address; + /** + * 电话 + */ + @TableField("phone") + private String phone; + /** + * 开户行 + */ + @TableField("bank") + private String bank; + /** + * 税号 + */ + @TableField("tax_number") + private String taxNumber; + /** + * 在产设备 + */ + @TableField("producting_device") + private String productingDevice; + /** + * 设备报价表 + */ + @TableField("equipment_quotation") + private String equipmentQuotation; + + @TableField("createtime") + private Date createtime =new Date(); + + @TableField("deptid") + private String deptid; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPersonName() { + return personName; + } + + public void setPersonName(String personName) { + this.personName = personName; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getBank() { + return bank; + } + + public void setBank(String bank) { + this.bank = bank; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getProductingDevice() { + return productingDevice; + } + + public void setProductingDevice(String productingDevice) { + this.productingDevice = productingDevice; + } + + public String getEquipmentQuotation() { + return equipmentQuotation; + } + + public void setEquipmentQuotation(String equipmentQuotation) { + this.equipmentQuotation = equipmentQuotation; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductFactoryInformation{" + + "id=" + id + + ", name=" + name + + ", personName=" + personName + + ", address=" + address + + ", phone=" + phone + + ", bank=" + bank + + ", taxNumber=" + taxNumber + + ", productingDevice=" + productingDevice + + ", equipmentQuotation=" + equipmentQuotation + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java new file mode 100644 index 0000000..00cbc92 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -0,0 +1,99 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@TableName("product_project") +public class Project extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_name") + private String projectName; + @TableField("project_simple_name") + private String projectSimpleName; + @TableField("project_manager") + private String projectManager; + private String descn; + @TableField("createtime") + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getProjectManager() { + return projectManager; + } + + public void setProjectManager(String projectManager) { + this.projectManager = projectManager; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Project{" + + "id=" + id + + ", projectName=" + projectName + + ", projectSimpleName=" + projectSimpleName + + ", projectManager=" + projectManager + + ", descn=" + descn + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java new file mode 100644 index 0000000..658c2e1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java @@ -0,0 +1,126 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_reimburse") +public class Reimburse extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mi:ss") + @TableField("reimburse_time") + private Date reimburseTime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getReimburseTime() { + return reimburseTime; + } + + public void setReimburseTime(Date reimburseTime) { + this.reimburseTime = reimburseTime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Reimburse{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", reimburseTime=" + reimburseTime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java new file mode 100644 index 0000000..987efa7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java @@ -0,0 +1,141 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_task") +public class Task extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_id") + private Long projectId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("devmode_id") + private String devmodeId; + private Long devcount; + @TableField("delivery_time") + private Date deliveryTime; + private String demand; + private Date createtime; + @TableField(exist = false) + private String deliveryTimeFmt; + + @TableField(exist = false) + private Long taskId; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getProjectId() { + return projectId; + } + + public void setProjectId(Long projectId) { + this.projectId = projectId; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDevmodeId() { + return devmodeId; + } + + public void setDevmodeId(String devmodeId) { + this.devmodeId = devmodeId; + } + + public Long getDevcount() { + return devcount; + } + + public void setDevcount(Long devcount) { + this.devcount = devcount; + } + + public Date getDeliveryTime() { + return deliveryTime; + } + + public void setDeliveryTime(Date deliveryTime) { + this.deliveryTime = deliveryTime; + } + + public String getDemand() { + return demand; + } + + public void setDemand(String demand) { + this.demand = demand; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeliveryTimeFmt() { + return deliveryTimeFmt; + } + + public void setDeliveryTimeFmt(String deliveryTimeFmt) { + this.deliveryTimeFmt = deliveryTimeFmt; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Task{" + + "id=" + id + + ", projectId=" + projectId + + ", devtypeId=" + devtypeId + + ", devmodeId=" + devmodeId + + ", devcount=" + devcount + + ", deliveryTime=" + deliveryTime + + ", demand=" + demand + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java new file mode 100644 index 0000000..7785de5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface IAccountService extends IService { + + /** + * 根据用户名查用户 + * @param userName + * @return + */ + Account findUserByName(String userName); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java new file mode 100644 index 0000000..d8b5e87 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IContractService extends IService { + List selectPageList(Page page, String keyword1, String keyword2, String keyword3); + List reportExport(String keyword1, String keyword2, String keyword3); + void importContract( List contracts); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java new file mode 100644 index 0000000..0f2d6e0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IPaymentsService extends IService { + + boolean validate(Long proId,String money,String reorder); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java new file mode 100644 index 0000000..71490df --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -0,0 +1,62 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductDeviceTypeService extends IService { + + /** + * 批量导入设备类型列表 + * @param results + */ + void importDeviceType(List results); + + /** + * 导出列表 + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List reportExport(String keyword1,String keyword2,String keyword3); + + + /** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectPageDataScope(DataScope dataScope, Page page, + String keyword1, String keyword2, String keyword3); + + /** + * 获取在产的设备类型 + * @return + */ + List selectDeviceTypeList(); + + /** + * 根据产品型号获取产品 + * @param deviceModel + * @return + */ + ProductDeviceType selectDeviceTypeByModel(String deviceModel); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java new file mode 100644 index 0000000..455f60a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductFactoryInformationService extends IService { + /** + * 根据条件导出列表 + * @param keyword1 + * @param keyword2 + * @return + */ + List reportExport(String keyword1, String keyword2); + + + /** + * 导入 + * @param results + */ + void importDeviceType(List results); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java new file mode 100644 index 0000000..3c27bd1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface IProjectService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java new file mode 100644 index 0000000..ee0a55c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IReimburseService extends IService { + boolean validate(Long proId,String money,String reorder); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java new file mode 100644 index 0000000..09ce653 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.dao.AccountMapper; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.stereotype.Service; + +/** + *

+ * 管理员表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@Service +public class AccountServiceImpl extends ServiceImpl implements IAccountService { + + @Override + public Account findUserByName(String userName) { + + EntityWrapper userEntityWrapper = new EntityWrapper<>(); + userEntityWrapper.eq("name",userName); + userEntityWrapper.eq("status","1"); + return this.selectOne(userEntityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java new file mode 100644 index 0000000..dd04da0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java @@ -0,0 +1,138 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.shiro.ShiroUser; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ContractMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IPaymentsService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ContractServiceImpl extends ServiceImpl implements IContractService { + @Autowired + private IPaymentsService paymentsService; + @Autowired + private ICommonPermissionService permissionService; + @Autowired + private IAccountService userService; + @Value("${casic.producerName}") + private String producerName; + @Value("${casic.repairName}") + private String repairName; + + @Override + public List selectPageList(Page page, String keyword1, String keyword2, String keyword3) { + +// EntityWrapper query = new EntityWrapper<>(); +// if (ToolUtil.isNotEmpty(keyword1)) { +// query.like("contract_factory", keyword1); +// } +// if (ToolUtil.isNotEmpty(keyword3)) { +// query.like("contract_number", keyword3); +// } +// List contractList = this.selectPage(page, query).getRecords(); +// contractList.forEach(contract -> { +// contract.setPaymentStatus(getPaymentStatus(contract)); +// String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" +// + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" +// + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); +// contract.setNetFlow(netFlowStr); +// +// }); +// return contractList; + + + List contractList = new ArrayList<>(); + DataScope dataScope = permissionService.getCurrUserDataScope(); + ShiroUser currentUser = permissionService.getCurrLoginUser(); + if (currentUser.getRoleTips().contains(producerName) || currentUser.getRoleTips().contains(repairName)) { + contractList = this.baseMapper.findContractList(dataScope,page, currentUser.getName(), keyword1, keyword2, keyword3); + } else { + contractList = this.baseMapper.findContractList(dataScope,page, "", keyword1, keyword2, keyword3); + } + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + + }); + return contractList; + } + + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + + + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("contractFactory", keyword1); + } + if (ToolUtil.isNotEmpty(keyword3)) { + query.like("contract_number", keyword3); + } + + List contractList = this.selectList(query); + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); +// permissionService.findInDictByCode("applyStatus") + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + }); + + return contractList; + } + + @Override + public void importContract(List contracts) { + contracts.forEach(contract -> { + EntityWrapper query = new EntityWrapper<>(); + query.eq("contract_number", contract.getContractNumber()); + this.delete(query); + Account user = userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); + this.insert(contract); + }); + } + + public String getPaymentStatus(Contract contract) { + Map paraMap = new HashMap<>(); + paraMap.put("pro_id", contract.getId()); + List paymentsList = paymentsService.selectByMap(paraMap); + float sum = 0; + for (Payments payments : paymentsList) { + sum = sum + (ToolUtil.isNotEmpty(payments.getMoney()) ? Float.parseFloat(payments.getMoney()) : 0); + } + DecimalFormat df = new DecimalFormat("0"); + return sum + "," + df.format(100 * sum / Float.valueOf(contract.getContractAmount())) + "%"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java new file mode 100644 index 0000000..0c125d8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PaymentsMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class PaymentsServiceImpl extends ServiceImpl implements IPaymentsService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money,String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List paymentsList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Payments payments : paymentsList) { + if(reorder.equals(payments.getReorder())) continue; + total += ToolUtil.isNotEmpty(payments.getMoney()) ? + Long.valueOf(payments.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java new file mode 100644 index 0000000..ac6d447 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductDeviceTypeMapper; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.swing.text.html.parser.Entity; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductDeviceTypeServiceImpl extends ServiceImpl implements IProductDeviceTypeService { + + @Autowired + private ICommonPermissionService permissionService; + + @Transactional(rollbackFor = Exception.class) + @Override + public void importDeviceType(List results) { + + for (ProductDeviceType productDeviceType : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + this.baseMapper.delete(wrapper); + this.baseMapper.insert(productDeviceType); + } + } + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + wrapper.like("principal", keyword3); + } + List productDeviceTypes = this.selectList(wrapper); + for (ProductDeviceType productDeviceType : productDeviceTypes) { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + } + return productDeviceTypes; + } + + @Override + public List selectPageDataScope(DataScope dataScope, Page page, String keyword1, String keyword2, String keyword3) { + + List productDeviceTypeList = this.baseMapper.selectDataScopePage(dataScope, page, keyword1, keyword2, keyword3); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + return productDeviceTypeList; + + } + + @Override + public List selectDeviceTypeList() { + return this.baseMapper.selectDeviceTypeList(); + } + + + @Override + public ProductDeviceType selectDeviceTypeByModel(String deviceModel) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("product_model",deviceModel); + return this.selectOne(entityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java new file mode 100644 index 0000000..efe4410 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java @@ -0,0 +1,50 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductFactoryInformationMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductFactoryInformationServiceImpl extends ServiceImpl implements IProductFactoryInformationService { + + @Override + public List reportExport(String keyword1, String keyword2) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.like("producting_device", keyword2); + } + List productFactoryInformations = this.selectList(wrapper); + + return productFactoryInformations; + } + + + @Transactional(rollbackFor=Exception.class) + @Override + public void importDeviceType(List results) { + for (ProductFactoryInformation productFactoryInformation : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + delete(wrapper); + this.baseMapper.insert(productFactoryInformation); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java new file mode 100644 index 0000000..34655b0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.dao.ProjectMapper; +import com.casic.missiles.modular.system.service.IProjectService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@Service +public class ProjectServiceImpl extends ServiceImpl implements IProjectService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java new file mode 100644 index 0000000..5e8b77b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java @@ -0,0 +1,48 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.dao.ReimburseMapper; +import com.casic.missiles.modular.system.service.IReimburseService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ReimburseServiceImpl extends ServiceImpl implements IReimburseService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money, String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List reimburseList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Reimburse reimburse : reimburseList) { + if (reorder.equals(reimburse.getReorder())) continue; + total += ToolUtil.isNotEmpty(reimburse.getMoney()) ? + Long.valueOf(reimburse.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java new file mode 100644 index 0000000..d5ffadb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java @@ -0,0 +1,235 @@ +package com.casic.missiles.modular.system.util; + +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; + +import java.util.*; + +/** + * @author test203 + * @since 2020-04-06 + */ +public class DeviceUtil { + private final static String factoryCode = "20"; + private final static String wellExcludeCode = "4120"; + private final static String loraDevice = "A"; + private static Map devTypeCountHashMap = new HashMap(); + + static { + devTypeCountHashMap.put("电子标识器", 99999L); + devTypeCountHashMap.put("井盖状态监测仪", 65534L); + devTypeCountHashMap.put("灯箱控制器", 65535L); + devTypeCountHashMap.put("单灯控制器(单路)", 65535L); + devTypeCountHashMap.put("单灯控制器(双路)", 65535L); + devTypeCountHashMap.put("数据集中器", 255L); + devTypeCountHashMap.put("有害气体监测仪", 999L); + } + + public static List createDevCodes(ProductDeviceType deviceType, List batches) { + List deviceList = new ArrayList<>(); + try { + if ("电子标识器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 年份XX 批次号XX 编号XXXXX + String devCode = deviceType.getProductType() + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%05d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("井盖状态监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + String wellCode4 = String.format("%04x", i); + if (wellExcludeCode.equals(wellCode4)) { + continue; + } + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + wellCode4; + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("灯箱控制器".equals(deviceType.getProductName()) || + "单灯控制器(单路)".equals(deviceType.getProductName()) || + "单灯控制器(双路)".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("数据集中器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("有害气体监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型WS2000X- 年份XX 批次序号XXXX 编号XXX + String devCode = deviceType.getProductType() + + getYearFmt() + + String.format("%04d", batch.getBatchNumber()) + + String.format("%03d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } + //其他设备类型分lora和非lora版本 + else { + if (loraDevice.equals(deviceType.getCommunicationVersion())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } else { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return deviceList; + } + + + public static Map validate(ProductDeviceType deviceType, List batches, Task task) { + Map resultMap = new HashMap<>(); + boolean success = true; + String msg = ""; + long devSum = null != task ? task.getDevcount() : 0; + long devcount = 0, batchCountMax; + batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? + 0 : devTypeCountHashMap.get(deviceType.getProductName()); + if (0 == batchCountMax) { + if (deviceType.getProductModel().indexOf(loraDevice) + == deviceType.getProductModel().length() - 1) { + batchCountMax = 255; + } else { + batchCountMax = 9999; + } + } + for (Batch batch : batches) { + if (batch.getBatchCount() > batchCountMax) { + success = false; + msg = batch.getBatchNumber() + "批次号数量超过了最大范围" + batchCountMax; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + devcount += batch.getBatchCount(); + } + if (devcount != devSum) { + return returnMsg(); + } + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + + public static Map returnMsg() { + Map resultMap = new HashMap<>(); + resultMap.put("success", false); + resultMap.put("msg", "所有批次数量之和与任务中设备数量不一致!"); + return resultMap; + } + + /** + * 获取编码中的年份 + * + * @return + */ + public static String getYearFmt() { + + return DateUtil.format(new Date(), "yyyy").substring(2); + } + + + /** + * 比较2个map + * + * @param batchMap + * @param batchMap1 + * @return + */ + public static boolean equalMap(Map batchMap, Map batchMap1) { + if (batchMap.size() != batchMap1.size()) { + return false; + } + Iterator iter1 = batchMap.keySet().iterator(); + while (iter1.hasNext()) { + Long map1key = iter1.next(); + String map1value = batchMap.get(map1key).toString(); + String map2value = batchMap1.get(map1key).toString(); + if (!map1value.equals(map2value)) { + return false; + } + } + return true; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java new file mode 100644 index 0000000..33c3535 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java @@ -0,0 +1,43 @@ +package com.casic.missiles.modular.system.util; + +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; + +public class FileUtil { + public static File createFile(String path) throws IOException { + File file = new File(path); + if (!file.exists()) { + file.getParentFile().mkdirs(); + file.createNewFile(); + } + return file; + } + + + public static void downloadLocalFile(HttpServletResponse response,String path, String fileName) throws IOException { + File file = new File(path); + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", "attachment; filename=\"" + URLEncoder.encode(fileName, "UTF-8") + "\""); + response.setContentLength((int) file.length()); + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java new file mode 100644 index 0000000..341d3d1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.task.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.task.service.IBatchService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 批次控制器 + * + * @author dev + * @Date 2020-03-27 15:29:55 + */ +@Controller +@RequestMapping("/batch") +public class BatchController extends BaseController { + + + @Autowired + private IBatchService batchService; + + + /** + * 获取批次列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return batchService.selectList(null); + } + + /** + * 获取批次分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = batchService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增批次并生成设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + @Transactional + public Object add(@RequestBody List batches, Task task) { + + return batchService.addBatchAndDevices(batches,task); + + } + + /** + * 删除批次 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String batchId) { + batchService.deleteById(batchId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("batchIds") List batchIds) { + batchService.deleteBatchIds(batchIds); + return ResponseData.success(); + } + + /** + * 修改批次 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Batch batch) { + batchService.updateById(batch); + return ResponseData.success(); + } + + + /** + * 根据设备类型id + * 查找批次号 + */ + @RequestMapping(value = "/getBatchNumber") + @ResponseBody + public Object getBatchNumber(Long devtypeId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.orderBy("id", false); + Batch batch = batchService.selectOne(entityWrapper); + return ResponseData.success(200, "", batch != null ? batch.getBatchNumber() + 1 : 1); + } + +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java new file mode 100644 index 0000000..4670df3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 集中器相关日志 + */ +public class ProjectDict extends AbstractDictMap { + public static final String PROJECT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + @Override + public void init() { + put("projectName","项目名称"); + put("projectSimpleName","项目简称"); + put("projectManager","项目经理"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java new file mode 100644 index 0000000..7981a17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dto; + +/** + * 用于设备类型展示 + * @author test203 + * @date 2020-04-03 + */ +public class DeviceTypeDto { + private Long id; + private String productName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java new file mode 100644 index 0000000..f254585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java @@ -0,0 +1,361 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.math.BigDecimal; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; + +/** + *

+ * 管理员表 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@TableName("sys_user") +public class Account extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + /** + * 头像 + */ + private String avatar; + /** + * 账号 + */ + private String account; + /** + * 密码 + */ + private String password; + /** + * md5密码盐 + */ + private String salt; + /** + * 名字 + */ + private String name; + /** + * 生日 + */ + private Date birthday; + /** + * 性别(1:男 2:女) + */ + private String sex; + /** + * 电子邮件 + */ + private String email; + /** + * 电话 + */ + private String phone; + /** + * 角色id + */ + private String roleid; + /** + * 部门id + */ + private Long deptid; + /** + * 状态(1:启用 2:冻结 3:删除) + */ + private String status; + /** + * 创建时间 + */ + private Date createtime; + /** + * 保留字段 + */ + private Integer version; + private String targetid; + private String targetname; + @TableField("password_sync") + private String passwordSync; + @TableField("IS_SYNC") + private Integer isSync; + private String simplename; + /** + * 同步组织ID + */ + @TableField("TARGET_DEPTID_SYNC") + private String targetDeptidSync; + @TableField("LOGIN_IP") + private String loginIp; + @TableField("LOGIN_MAC") + private String loginMac; + /** + * 最后在线时间 + */ + @TableField("LAST_TIME") + private Date lastTime; + /** + * 经度 + */ + @TableField("POSITION_LNG") + private BigDecimal positionLng; + /** + * 纬度 + */ + @TableField("POSITION_LAT") + private BigDecimal positionLat; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt() { + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getRoleid() { + return roleid; + } + + public void setRoleid(String roleid) { + this.roleid = roleid; + } + + public Long getDeptid() { + return deptid; + } + + public void setDeptid(Long deptid) { + this.deptid = deptid; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + public String getTargetid() { + return targetid; + } + + public void setTargetid(String targetid) { + this.targetid = targetid; + } + + public String getTargetname() { + return targetname; + } + + public void setTargetname(String targetname) { + this.targetname = targetname; + } + + public String getPasswordSync() { + return passwordSync; + } + + public void setPasswordSync(String passwordSync) { + this.passwordSync = passwordSync; + } + + public Integer getIsSync() { + return isSync; + } + + public void setIsSync(Integer isSync) { + this.isSync = isSync; + } + + public String getSimplename() { + return simplename; + } + + public void setSimplename(String simplename) { + this.simplename = simplename; + } + + public String getTargetDeptidSync() { + return targetDeptidSync; + } + + public void setTargetDeptidSync(String targetDeptidSync) { + this.targetDeptidSync = targetDeptidSync; + } + + public String getLoginIp() { + return loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getLoginMac() { + return loginMac; + } + + public void setLoginMac(String loginMac) { + this.loginMac = loginMac; + } + + public Date getLastTime() { + return lastTime; + } + + public void setLastTime(Date lastTime) { + this.lastTime = lastTime; + } + + public BigDecimal getPositionLng() { + return positionLng; + } + + public void setPositionLng(BigDecimal positionLng) { + this.positionLng = positionLng; + } + + public BigDecimal getPositionLat() { + return positionLat; + } + + public void setPositionLat(BigDecimal positionLat) { + this.positionLat = positionLat; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", avatar=" + avatar + + ", account=" + account + + ", password=" + password + + ", salt=" + salt + + ", name=" + name + + ", birthday=" + birthday + + ", sex=" + sex + + ", email=" + email + + ", phone=" + phone + + ", roleid=" + roleid + + ", deptid=" + deptid + + ", status=" + status + + ", createtime=" + createtime + + ", version=" + version + + ", targetid=" + targetid + + ", targetname=" + targetname + + ", passwordSync=" + passwordSync + + ", isSync=" + isSync + + ", simplename=" + simplename + + ", targetDeptidSync=" + targetDeptidSync + + ", loginIp=" + loginIp + + ", loginMac=" + loginMac + + ", lastTime=" + lastTime + + ", positionLng=" + positionLng + + ", positionLat=" + positionLat + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java new file mode 100644 index 0000000..81516b7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -0,0 +1,110 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_batch") +public class Batch extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_number") + private Long batchNumber; + @TableField("batch_count") + private Long batchCount; + @TableField("contract_id") + private Long contractId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("task_id") + private Long taskId; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(Long batchNumber) { + this.batchNumber = batchNumber; + } + + public Long getBatchCount() { + return batchCount; + } + + public void setBatchCount(Long batchCount) { + this.batchCount = batchCount; + } + + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Batch{" + + "id=" + id + + ", batchNumber=" + batchNumber + + ", batchCount=" + batchCount + + ", contractId=" + contractId + + ", taskId=" + taskId + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java new file mode 100644 index 0000000..893a1ed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -0,0 +1,186 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_contract") +public class Contract extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("contract_number") + private String contractNumber; + @TableField("contract_name") + private String contractName; + @TableField("contract_content") + private String contractContent; + @TableField("contract_amount") + private String contractAmount; + @TableField("external_project_apply") + private String externalProjectApply; + @TableField("external_contract_apply") + private String externalContractApply; + @TableField("principal") + private String principal; + @TableField("external_check_apply") + private String externalCheckApply; + @TableField("contract_factory") + private String contractFactory; + @TableField("createtime") + private Date createtime; + @TableField(exist = false) + private String paymentStatus; + @TableField(exist = false) + private String netFlow; + @TableField("deptid") + private String deptid; + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getContractName() { + return contractName; + } + + public void setContractName(String contractName) { + this.contractName = contractName; + } + + public String getContractContent() { + return contractContent; + } + + public void setContractContent(String contractContent) { + this.contractContent = contractContent; + } + + public String getContractAmount() { + return contractAmount; + } + + public void setContractAmount(String contractAmount) { + this.contractAmount = contractAmount; + } + + public String getExternalProjectApply() { + return externalProjectApply; + } + + public void setExternalProjectApply(String externalProjectApply) { + this.externalProjectApply = externalProjectApply; + } + + public String getExternalContractApply() { + return externalContractApply; + } + + public void setExternalContractApply(String externalContractApply) { + this.externalContractApply = externalContractApply; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalCheckApply() { + return externalCheckApply; + } + + public void setExternalCheckApply(String externalCheckApply) { + this.externalCheckApply = externalCheckApply; + } + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public String getContractFactory() { + return contractFactory; + } + + public void setContractFactory(String contractFactory) { + this.contractFactory = contractFactory; + } + + public String getNetFlow() { + return netFlow; + } + + public void setNetFlow(String netFlow) { + this.netFlow = netFlow; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Contract{" + + "contractNumber=" + contractNumber + + ", contractName=" + contractName + + ", contractContent=" + contractContent + + ", contractAmount=" + contractAmount + + ", externalProjectApply=" + externalProjectApply + + ", externalContractApply=" + externalContractApply + + ", principal=" + principal + + ", id=" + id + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java new file mode 100644 index 0000000..8718d91 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -0,0 +1,150 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_device") +public class Device extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_id") + private Long batchId; + private String devcode; + @TableField("devtype_id") + private Long devtypeId; + @TableField("is_send") + private String isSend; + private String longitude; + private String latitude; + @TableField("install_height") + private String installHeight; + private String iccid; + private Long imei; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public Long getImei() { + return imei; + } + + public void setImei(Long imei) { + this.imei = imei; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Device{" + + "id=" + id + + ", batchId=" + batchId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", isSend=" + isSend + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", installHeight=" + installHeight + + ", iccid=" + iccid + + ", imei=" + imei + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java new file mode 100644 index 0000000..870c36f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_payments") +public class Payments extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @TableField("paytime") + private Date paytime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getPaytime() { + return paytime; + } + + public void setPaytime(Date paytime) { + this.paytime = paytime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Payments{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", paytime=" + paytime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java new file mode 100644 index 0000000..ae6b585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -0,0 +1,285 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_device_type") +public class ProductDeviceType extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 产品名称 + */ + @TableField("product_name") + private String productName; + /** + * 产品型号 + */ + @TableField("product_model") + private String productModel; + + /** + * 通讯版本号 + */ + @TableField("communication_version") + private String communicationVersion; + + /** + * 产品类型 + */ + @TableField("product_type") + private String productType; + + /** + * 整机版本号 + */ + @TableField("machine_version") + private String machineVersion; + /** + * 硬件版本号 + */ + @TableField("hardware_version") + private String hardwareVersion; + /** + * 软件版本号 + */ + @TableField("software_version") + private String softwareVersion; + /** + * 设计归档 + */ + @TableField("design_archive") + private String designArchive; + /** + * 批产归档 + */ + @TableField("batch_filing") + private String batchFiling; + /** + * 状态 + */ + @TableField("status") + private Integer status; + /** + * 性能指标 + */ + @TableField("kpi") + private String kpi; + /** + * 批产负责人 + */ + @TableField("principal") + private String principal; + /** + * 定额汇总表 + */ + @TableField("quota_summary") + private String quotaSummary; + + /** + * 权属部门 + */ + @TableField("deptid") + private String deptid; + + /** + * 备注 + */ + @TableField("descn") + private String descn; + + @TableField("createtime") + private Date createtime; + + + @TableField(exist = false) + private String statusFmt; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } + + public String getMachineVersion() { + return machineVersion; + } + + public void setMachineVersion(String machineVersion) { + this.machineVersion = machineVersion; + } + + public String getHardwareVersion() { + return hardwareVersion; + } + + public void setHardwareVersion(String hardwareVersion) { + this.hardwareVersion = hardwareVersion; + } + + public String getSoftwareVersion() { + return softwareVersion; + } + + public void setSoftwareVersion(String softwareVersion) { + this.softwareVersion = softwareVersion; + } + + public String getDesignArchive() { + return designArchive; + } + + public void setDesignArchive(String designArchive) { + this.designArchive = designArchive; + } + + public String getBatchFiling() { + return batchFiling; + } + + public void setBatchFiling(String batchFiling) { + this.batchFiling = batchFiling; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getKpi() { + return kpi; + } + + public void setKpi(String kpi) { + this.kpi = kpi; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public String getQuotaSummary() { + return quotaSummary; + } + + public void setQuotaSummary(String quotaSummary) { + this.quotaSummary = quotaSummary; + } + + public String getStatusFmt() { + return statusFmt; + } + + public void setStatusFmt(String statusFmt) { + this.statusFmt = statusFmt; + } + + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getProductType() { + return productType; + } + + public void setProductType(String productType) { + this.productType = productType; + } + + public String getCommunicationVersion() { + return communicationVersion; + } + + public void setCommunicationVersion(String communicationVersion) { + this.communicationVersion = communicationVersion; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductDeviceType{" + + "id=" + id + + ", productName=" + productName + + ", productModel=" + productModel + + ", machineVersion=" + machineVersion + + ", hardwareVersion=" + hardwareVersion + + ", softwareVersion=" + softwareVersion + + ", designArchive=" + designArchive + + ", batchFiling=" + batchFiling + + ", status=" + status + + ", kpi=" + kpi + + ", principal=" + principal + + ", quotaSummary=" + quotaSummary + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java new file mode 100644 index 0000000..b0fd924 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java @@ -0,0 +1,187 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_factory_information") +public class ProductFactoryInformation extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 厂家名称 + */ + @TableField("name") + private String name; + /** + * 厂家联系人 + */ + @TableField("person_name") + private String personName; + /** + * 地址 + */ + @TableField("address") + private String address; + /** + * 电话 + */ + @TableField("phone") + private String phone; + /** + * 开户行 + */ + @TableField("bank") + private String bank; + /** + * 税号 + */ + @TableField("tax_number") + private String taxNumber; + /** + * 在产设备 + */ + @TableField("producting_device") + private String productingDevice; + /** + * 设备报价表 + */ + @TableField("equipment_quotation") + private String equipmentQuotation; + + @TableField("createtime") + private Date createtime =new Date(); + + @TableField("deptid") + private String deptid; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPersonName() { + return personName; + } + + public void setPersonName(String personName) { + this.personName = personName; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getBank() { + return bank; + } + + public void setBank(String bank) { + this.bank = bank; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getProductingDevice() { + return productingDevice; + } + + public void setProductingDevice(String productingDevice) { + this.productingDevice = productingDevice; + } + + public String getEquipmentQuotation() { + return equipmentQuotation; + } + + public void setEquipmentQuotation(String equipmentQuotation) { + this.equipmentQuotation = equipmentQuotation; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductFactoryInformation{" + + "id=" + id + + ", name=" + name + + ", personName=" + personName + + ", address=" + address + + ", phone=" + phone + + ", bank=" + bank + + ", taxNumber=" + taxNumber + + ", productingDevice=" + productingDevice + + ", equipmentQuotation=" + equipmentQuotation + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java new file mode 100644 index 0000000..00cbc92 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -0,0 +1,99 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@TableName("product_project") +public class Project extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_name") + private String projectName; + @TableField("project_simple_name") + private String projectSimpleName; + @TableField("project_manager") + private String projectManager; + private String descn; + @TableField("createtime") + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getProjectManager() { + return projectManager; + } + + public void setProjectManager(String projectManager) { + this.projectManager = projectManager; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Project{" + + "id=" + id + + ", projectName=" + projectName + + ", projectSimpleName=" + projectSimpleName + + ", projectManager=" + projectManager + + ", descn=" + descn + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java new file mode 100644 index 0000000..658c2e1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java @@ -0,0 +1,126 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_reimburse") +public class Reimburse extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mi:ss") + @TableField("reimburse_time") + private Date reimburseTime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getReimburseTime() { + return reimburseTime; + } + + public void setReimburseTime(Date reimburseTime) { + this.reimburseTime = reimburseTime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Reimburse{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", reimburseTime=" + reimburseTime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java new file mode 100644 index 0000000..987efa7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java @@ -0,0 +1,141 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_task") +public class Task extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_id") + private Long projectId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("devmode_id") + private String devmodeId; + private Long devcount; + @TableField("delivery_time") + private Date deliveryTime; + private String demand; + private Date createtime; + @TableField(exist = false) + private String deliveryTimeFmt; + + @TableField(exist = false) + private Long taskId; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getProjectId() { + return projectId; + } + + public void setProjectId(Long projectId) { + this.projectId = projectId; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDevmodeId() { + return devmodeId; + } + + public void setDevmodeId(String devmodeId) { + this.devmodeId = devmodeId; + } + + public Long getDevcount() { + return devcount; + } + + public void setDevcount(Long devcount) { + this.devcount = devcount; + } + + public Date getDeliveryTime() { + return deliveryTime; + } + + public void setDeliveryTime(Date deliveryTime) { + this.deliveryTime = deliveryTime; + } + + public String getDemand() { + return demand; + } + + public void setDemand(String demand) { + this.demand = demand; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeliveryTimeFmt() { + return deliveryTimeFmt; + } + + public void setDeliveryTimeFmt(String deliveryTimeFmt) { + this.deliveryTimeFmt = deliveryTimeFmt; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Task{" + + "id=" + id + + ", projectId=" + projectId + + ", devtypeId=" + devtypeId + + ", devmodeId=" + devmodeId + + ", devcount=" + devcount + + ", deliveryTime=" + deliveryTime + + ", demand=" + demand + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java new file mode 100644 index 0000000..7785de5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface IAccountService extends IService { + + /** + * 根据用户名查用户 + * @param userName + * @return + */ + Account findUserByName(String userName); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java new file mode 100644 index 0000000..d8b5e87 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IContractService extends IService { + List selectPageList(Page page, String keyword1, String keyword2, String keyword3); + List reportExport(String keyword1, String keyword2, String keyword3); + void importContract( List contracts); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java new file mode 100644 index 0000000..0f2d6e0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IPaymentsService extends IService { + + boolean validate(Long proId,String money,String reorder); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java new file mode 100644 index 0000000..71490df --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -0,0 +1,62 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductDeviceTypeService extends IService { + + /** + * 批量导入设备类型列表 + * @param results + */ + void importDeviceType(List results); + + /** + * 导出列表 + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List reportExport(String keyword1,String keyword2,String keyword3); + + + /** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectPageDataScope(DataScope dataScope, Page page, + String keyword1, String keyword2, String keyword3); + + /** + * 获取在产的设备类型 + * @return + */ + List selectDeviceTypeList(); + + /** + * 根据产品型号获取产品 + * @param deviceModel + * @return + */ + ProductDeviceType selectDeviceTypeByModel(String deviceModel); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java new file mode 100644 index 0000000..455f60a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductFactoryInformationService extends IService { + /** + * 根据条件导出列表 + * @param keyword1 + * @param keyword2 + * @return + */ + List reportExport(String keyword1, String keyword2); + + + /** + * 导入 + * @param results + */ + void importDeviceType(List results); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java new file mode 100644 index 0000000..3c27bd1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface IProjectService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java new file mode 100644 index 0000000..ee0a55c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IReimburseService extends IService { + boolean validate(Long proId,String money,String reorder); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java new file mode 100644 index 0000000..09ce653 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.dao.AccountMapper; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.stereotype.Service; + +/** + *

+ * 管理员表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@Service +public class AccountServiceImpl extends ServiceImpl implements IAccountService { + + @Override + public Account findUserByName(String userName) { + + EntityWrapper userEntityWrapper = new EntityWrapper<>(); + userEntityWrapper.eq("name",userName); + userEntityWrapper.eq("status","1"); + return this.selectOne(userEntityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java new file mode 100644 index 0000000..dd04da0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java @@ -0,0 +1,138 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.shiro.ShiroUser; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ContractMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IPaymentsService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ContractServiceImpl extends ServiceImpl implements IContractService { + @Autowired + private IPaymentsService paymentsService; + @Autowired + private ICommonPermissionService permissionService; + @Autowired + private IAccountService userService; + @Value("${casic.producerName}") + private String producerName; + @Value("${casic.repairName}") + private String repairName; + + @Override + public List selectPageList(Page page, String keyword1, String keyword2, String keyword3) { + +// EntityWrapper query = new EntityWrapper<>(); +// if (ToolUtil.isNotEmpty(keyword1)) { +// query.like("contract_factory", keyword1); +// } +// if (ToolUtil.isNotEmpty(keyword3)) { +// query.like("contract_number", keyword3); +// } +// List contractList = this.selectPage(page, query).getRecords(); +// contractList.forEach(contract -> { +// contract.setPaymentStatus(getPaymentStatus(contract)); +// String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" +// + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" +// + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); +// contract.setNetFlow(netFlowStr); +// +// }); +// return contractList; + + + List contractList = new ArrayList<>(); + DataScope dataScope = permissionService.getCurrUserDataScope(); + ShiroUser currentUser = permissionService.getCurrLoginUser(); + if (currentUser.getRoleTips().contains(producerName) || currentUser.getRoleTips().contains(repairName)) { + contractList = this.baseMapper.findContractList(dataScope,page, currentUser.getName(), keyword1, keyword2, keyword3); + } else { + contractList = this.baseMapper.findContractList(dataScope,page, "", keyword1, keyword2, keyword3); + } + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + + }); + return contractList; + } + + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + + + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("contractFactory", keyword1); + } + if (ToolUtil.isNotEmpty(keyword3)) { + query.like("contract_number", keyword3); + } + + List contractList = this.selectList(query); + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); +// permissionService.findInDictByCode("applyStatus") + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + }); + + return contractList; + } + + @Override + public void importContract(List contracts) { + contracts.forEach(contract -> { + EntityWrapper query = new EntityWrapper<>(); + query.eq("contract_number", contract.getContractNumber()); + this.delete(query); + Account user = userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); + this.insert(contract); + }); + } + + public String getPaymentStatus(Contract contract) { + Map paraMap = new HashMap<>(); + paraMap.put("pro_id", contract.getId()); + List paymentsList = paymentsService.selectByMap(paraMap); + float sum = 0; + for (Payments payments : paymentsList) { + sum = sum + (ToolUtil.isNotEmpty(payments.getMoney()) ? Float.parseFloat(payments.getMoney()) : 0); + } + DecimalFormat df = new DecimalFormat("0"); + return sum + "," + df.format(100 * sum / Float.valueOf(contract.getContractAmount())) + "%"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java new file mode 100644 index 0000000..0c125d8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PaymentsMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class PaymentsServiceImpl extends ServiceImpl implements IPaymentsService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money,String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List paymentsList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Payments payments : paymentsList) { + if(reorder.equals(payments.getReorder())) continue; + total += ToolUtil.isNotEmpty(payments.getMoney()) ? + Long.valueOf(payments.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java new file mode 100644 index 0000000..ac6d447 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductDeviceTypeMapper; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.swing.text.html.parser.Entity; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductDeviceTypeServiceImpl extends ServiceImpl implements IProductDeviceTypeService { + + @Autowired + private ICommonPermissionService permissionService; + + @Transactional(rollbackFor = Exception.class) + @Override + public void importDeviceType(List results) { + + for (ProductDeviceType productDeviceType : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + this.baseMapper.delete(wrapper); + this.baseMapper.insert(productDeviceType); + } + } + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + wrapper.like("principal", keyword3); + } + List productDeviceTypes = this.selectList(wrapper); + for (ProductDeviceType productDeviceType : productDeviceTypes) { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + } + return productDeviceTypes; + } + + @Override + public List selectPageDataScope(DataScope dataScope, Page page, String keyword1, String keyword2, String keyword3) { + + List productDeviceTypeList = this.baseMapper.selectDataScopePage(dataScope, page, keyword1, keyword2, keyword3); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + return productDeviceTypeList; + + } + + @Override + public List selectDeviceTypeList() { + return this.baseMapper.selectDeviceTypeList(); + } + + + @Override + public ProductDeviceType selectDeviceTypeByModel(String deviceModel) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("product_model",deviceModel); + return this.selectOne(entityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java new file mode 100644 index 0000000..efe4410 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java @@ -0,0 +1,50 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductFactoryInformationMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductFactoryInformationServiceImpl extends ServiceImpl implements IProductFactoryInformationService { + + @Override + public List reportExport(String keyword1, String keyword2) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.like("producting_device", keyword2); + } + List productFactoryInformations = this.selectList(wrapper); + + return productFactoryInformations; + } + + + @Transactional(rollbackFor=Exception.class) + @Override + public void importDeviceType(List results) { + for (ProductFactoryInformation productFactoryInformation : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + delete(wrapper); + this.baseMapper.insert(productFactoryInformation); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java new file mode 100644 index 0000000..34655b0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.dao.ProjectMapper; +import com.casic.missiles.modular.system.service.IProjectService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@Service +public class ProjectServiceImpl extends ServiceImpl implements IProjectService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java new file mode 100644 index 0000000..5e8b77b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java @@ -0,0 +1,48 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.dao.ReimburseMapper; +import com.casic.missiles.modular.system.service.IReimburseService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ReimburseServiceImpl extends ServiceImpl implements IReimburseService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money, String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List reimburseList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Reimburse reimburse : reimburseList) { + if (reorder.equals(reimburse.getReorder())) continue; + total += ToolUtil.isNotEmpty(reimburse.getMoney()) ? + Long.valueOf(reimburse.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java new file mode 100644 index 0000000..d5ffadb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java @@ -0,0 +1,235 @@ +package com.casic.missiles.modular.system.util; + +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; + +import java.util.*; + +/** + * @author test203 + * @since 2020-04-06 + */ +public class DeviceUtil { + private final static String factoryCode = "20"; + private final static String wellExcludeCode = "4120"; + private final static String loraDevice = "A"; + private static Map devTypeCountHashMap = new HashMap(); + + static { + devTypeCountHashMap.put("电子标识器", 99999L); + devTypeCountHashMap.put("井盖状态监测仪", 65534L); + devTypeCountHashMap.put("灯箱控制器", 65535L); + devTypeCountHashMap.put("单灯控制器(单路)", 65535L); + devTypeCountHashMap.put("单灯控制器(双路)", 65535L); + devTypeCountHashMap.put("数据集中器", 255L); + devTypeCountHashMap.put("有害气体监测仪", 999L); + } + + public static List createDevCodes(ProductDeviceType deviceType, List batches) { + List deviceList = new ArrayList<>(); + try { + if ("电子标识器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 年份XX 批次号XX 编号XXXXX + String devCode = deviceType.getProductType() + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%05d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("井盖状态监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + String wellCode4 = String.format("%04x", i); + if (wellExcludeCode.equals(wellCode4)) { + continue; + } + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + wellCode4; + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("灯箱控制器".equals(deviceType.getProductName()) || + "单灯控制器(单路)".equals(deviceType.getProductName()) || + "单灯控制器(双路)".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("数据集中器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("有害气体监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型WS2000X- 年份XX 批次序号XXXX 编号XXX + String devCode = deviceType.getProductType() + + getYearFmt() + + String.format("%04d", batch.getBatchNumber()) + + String.format("%03d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } + //其他设备类型分lora和非lora版本 + else { + if (loraDevice.equals(deviceType.getCommunicationVersion())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } else { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return deviceList; + } + + + public static Map validate(ProductDeviceType deviceType, List batches, Task task) { + Map resultMap = new HashMap<>(); + boolean success = true; + String msg = ""; + long devSum = null != task ? task.getDevcount() : 0; + long devcount = 0, batchCountMax; + batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? + 0 : devTypeCountHashMap.get(deviceType.getProductName()); + if (0 == batchCountMax) { + if (deviceType.getProductModel().indexOf(loraDevice) + == deviceType.getProductModel().length() - 1) { + batchCountMax = 255; + } else { + batchCountMax = 9999; + } + } + for (Batch batch : batches) { + if (batch.getBatchCount() > batchCountMax) { + success = false; + msg = batch.getBatchNumber() + "批次号数量超过了最大范围" + batchCountMax; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + devcount += batch.getBatchCount(); + } + if (devcount != devSum) { + return returnMsg(); + } + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + + public static Map returnMsg() { + Map resultMap = new HashMap<>(); + resultMap.put("success", false); + resultMap.put("msg", "所有批次数量之和与任务中设备数量不一致!"); + return resultMap; + } + + /** + * 获取编码中的年份 + * + * @return + */ + public static String getYearFmt() { + + return DateUtil.format(new Date(), "yyyy").substring(2); + } + + + /** + * 比较2个map + * + * @param batchMap + * @param batchMap1 + * @return + */ + public static boolean equalMap(Map batchMap, Map batchMap1) { + if (batchMap.size() != batchMap1.size()) { + return false; + } + Iterator iter1 = batchMap.keySet().iterator(); + while (iter1.hasNext()) { + Long map1key = iter1.next(); + String map1value = batchMap.get(map1key).toString(); + String map2value = batchMap1.get(map1key).toString(); + if (!map1value.equals(map2value)) { + return false; + } + } + return true; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java new file mode 100644 index 0000000..33c3535 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java @@ -0,0 +1,43 @@ +package com.casic.missiles.modular.system.util; + +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; + +public class FileUtil { + public static File createFile(String path) throws IOException { + File file = new File(path); + if (!file.exists()) { + file.getParentFile().mkdirs(); + file.createNewFile(); + } + return file; + } + + + public static void downloadLocalFile(HttpServletResponse response,String path, String fileName) throws IOException { + File file = new File(path); + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", "attachment; filename=\"" + URLEncoder.encode(fileName, "UTF-8") + "\""); + response.setContentLength((int) file.length()); + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java new file mode 100644 index 0000000..341d3d1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.task.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.task.service.IBatchService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 批次控制器 + * + * @author dev + * @Date 2020-03-27 15:29:55 + */ +@Controller +@RequestMapping("/batch") +public class BatchController extends BaseController { + + + @Autowired + private IBatchService batchService; + + + /** + * 获取批次列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return batchService.selectList(null); + } + + /** + * 获取批次分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = batchService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增批次并生成设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + @Transactional + public Object add(@RequestBody List batches, Task task) { + + return batchService.addBatchAndDevices(batches,task); + + } + + /** + * 删除批次 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String batchId) { + batchService.deleteById(batchId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("batchIds") List batchIds) { + batchService.deleteBatchIds(batchIds); + return ResponseData.success(); + } + + /** + * 修改批次 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Batch batch) { + batchService.updateById(batch); + return ResponseData.success(); + } + + + /** + * 根据设备类型id + * 查找批次号 + */ + @RequestMapping(value = "/getBatchNumber") + @ResponseBody + public Object getBatchNumber(Long devtypeId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.orderBy("id", false); + Batch batch = batchService.selectOne(entityWrapper); + return ResponseData.success(200, "", batch != null ? batch.getBatchNumber() + 1 : 1); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java new file mode 100644 index 0000000..f463168 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java @@ -0,0 +1,102 @@ +package com.casic.missiles.modular.task.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * 任务控制器 + * + * @author dev + * @Date 2020-03-27 15:28:26 + */ +@Controller +@RequestMapping("/task") +public class TaskController extends BaseController { + + + @Autowired + private ITaskService taskService; + + + /** + * 获取任务列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return taskService.selectList(null); + } + + /** + * 获取任务分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = taskService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增任务 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + taskService.insert(task); + return ResponseData.success(); + } + + /** + * 删除任务 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String taskId) { + taskService.deleteById(taskId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("taskIds") List taskIds) { + taskService.deleteBatchIds(taskIds); + return ResponseData.success(); + } + + /** + * 修改任务 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + taskService.updateById(task); + return ResponseData.success(); + } + + +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java new file mode 100644 index 0000000..4670df3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 集中器相关日志 + */ +public class ProjectDict extends AbstractDictMap { + public static final String PROJECT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + @Override + public void init() { + put("projectName","项目名称"); + put("projectSimpleName","项目简称"); + put("projectManager","项目经理"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java new file mode 100644 index 0000000..7981a17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dto; + +/** + * 用于设备类型展示 + * @author test203 + * @date 2020-04-03 + */ +public class DeviceTypeDto { + private Long id; + private String productName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java new file mode 100644 index 0000000..f254585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java @@ -0,0 +1,361 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.math.BigDecimal; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; + +/** + *

+ * 管理员表 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@TableName("sys_user") +public class Account extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + /** + * 头像 + */ + private String avatar; + /** + * 账号 + */ + private String account; + /** + * 密码 + */ + private String password; + /** + * md5密码盐 + */ + private String salt; + /** + * 名字 + */ + private String name; + /** + * 生日 + */ + private Date birthday; + /** + * 性别(1:男 2:女) + */ + private String sex; + /** + * 电子邮件 + */ + private String email; + /** + * 电话 + */ + private String phone; + /** + * 角色id + */ + private String roleid; + /** + * 部门id + */ + private Long deptid; + /** + * 状态(1:启用 2:冻结 3:删除) + */ + private String status; + /** + * 创建时间 + */ + private Date createtime; + /** + * 保留字段 + */ + private Integer version; + private String targetid; + private String targetname; + @TableField("password_sync") + private String passwordSync; + @TableField("IS_SYNC") + private Integer isSync; + private String simplename; + /** + * 同步组织ID + */ + @TableField("TARGET_DEPTID_SYNC") + private String targetDeptidSync; + @TableField("LOGIN_IP") + private String loginIp; + @TableField("LOGIN_MAC") + private String loginMac; + /** + * 最后在线时间 + */ + @TableField("LAST_TIME") + private Date lastTime; + /** + * 经度 + */ + @TableField("POSITION_LNG") + private BigDecimal positionLng; + /** + * 纬度 + */ + @TableField("POSITION_LAT") + private BigDecimal positionLat; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt() { + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getRoleid() { + return roleid; + } + + public void setRoleid(String roleid) { + this.roleid = roleid; + } + + public Long getDeptid() { + return deptid; + } + + public void setDeptid(Long deptid) { + this.deptid = deptid; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + public String getTargetid() { + return targetid; + } + + public void setTargetid(String targetid) { + this.targetid = targetid; + } + + public String getTargetname() { + return targetname; + } + + public void setTargetname(String targetname) { + this.targetname = targetname; + } + + public String getPasswordSync() { + return passwordSync; + } + + public void setPasswordSync(String passwordSync) { + this.passwordSync = passwordSync; + } + + public Integer getIsSync() { + return isSync; + } + + public void setIsSync(Integer isSync) { + this.isSync = isSync; + } + + public String getSimplename() { + return simplename; + } + + public void setSimplename(String simplename) { + this.simplename = simplename; + } + + public String getTargetDeptidSync() { + return targetDeptidSync; + } + + public void setTargetDeptidSync(String targetDeptidSync) { + this.targetDeptidSync = targetDeptidSync; + } + + public String getLoginIp() { + return loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getLoginMac() { + return loginMac; + } + + public void setLoginMac(String loginMac) { + this.loginMac = loginMac; + } + + public Date getLastTime() { + return lastTime; + } + + public void setLastTime(Date lastTime) { + this.lastTime = lastTime; + } + + public BigDecimal getPositionLng() { + return positionLng; + } + + public void setPositionLng(BigDecimal positionLng) { + this.positionLng = positionLng; + } + + public BigDecimal getPositionLat() { + return positionLat; + } + + public void setPositionLat(BigDecimal positionLat) { + this.positionLat = positionLat; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", avatar=" + avatar + + ", account=" + account + + ", password=" + password + + ", salt=" + salt + + ", name=" + name + + ", birthday=" + birthday + + ", sex=" + sex + + ", email=" + email + + ", phone=" + phone + + ", roleid=" + roleid + + ", deptid=" + deptid + + ", status=" + status + + ", createtime=" + createtime + + ", version=" + version + + ", targetid=" + targetid + + ", targetname=" + targetname + + ", passwordSync=" + passwordSync + + ", isSync=" + isSync + + ", simplename=" + simplename + + ", targetDeptidSync=" + targetDeptidSync + + ", loginIp=" + loginIp + + ", loginMac=" + loginMac + + ", lastTime=" + lastTime + + ", positionLng=" + positionLng + + ", positionLat=" + positionLat + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java new file mode 100644 index 0000000..81516b7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -0,0 +1,110 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_batch") +public class Batch extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_number") + private Long batchNumber; + @TableField("batch_count") + private Long batchCount; + @TableField("contract_id") + private Long contractId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("task_id") + private Long taskId; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(Long batchNumber) { + this.batchNumber = batchNumber; + } + + public Long getBatchCount() { + return batchCount; + } + + public void setBatchCount(Long batchCount) { + this.batchCount = batchCount; + } + + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Batch{" + + "id=" + id + + ", batchNumber=" + batchNumber + + ", batchCount=" + batchCount + + ", contractId=" + contractId + + ", taskId=" + taskId + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java new file mode 100644 index 0000000..893a1ed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -0,0 +1,186 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_contract") +public class Contract extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("contract_number") + private String contractNumber; + @TableField("contract_name") + private String contractName; + @TableField("contract_content") + private String contractContent; + @TableField("contract_amount") + private String contractAmount; + @TableField("external_project_apply") + private String externalProjectApply; + @TableField("external_contract_apply") + private String externalContractApply; + @TableField("principal") + private String principal; + @TableField("external_check_apply") + private String externalCheckApply; + @TableField("contract_factory") + private String contractFactory; + @TableField("createtime") + private Date createtime; + @TableField(exist = false) + private String paymentStatus; + @TableField(exist = false) + private String netFlow; + @TableField("deptid") + private String deptid; + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getContractName() { + return contractName; + } + + public void setContractName(String contractName) { + this.contractName = contractName; + } + + public String getContractContent() { + return contractContent; + } + + public void setContractContent(String contractContent) { + this.contractContent = contractContent; + } + + public String getContractAmount() { + return contractAmount; + } + + public void setContractAmount(String contractAmount) { + this.contractAmount = contractAmount; + } + + public String getExternalProjectApply() { + return externalProjectApply; + } + + public void setExternalProjectApply(String externalProjectApply) { + this.externalProjectApply = externalProjectApply; + } + + public String getExternalContractApply() { + return externalContractApply; + } + + public void setExternalContractApply(String externalContractApply) { + this.externalContractApply = externalContractApply; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalCheckApply() { + return externalCheckApply; + } + + public void setExternalCheckApply(String externalCheckApply) { + this.externalCheckApply = externalCheckApply; + } + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public String getContractFactory() { + return contractFactory; + } + + public void setContractFactory(String contractFactory) { + this.contractFactory = contractFactory; + } + + public String getNetFlow() { + return netFlow; + } + + public void setNetFlow(String netFlow) { + this.netFlow = netFlow; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Contract{" + + "contractNumber=" + contractNumber + + ", contractName=" + contractName + + ", contractContent=" + contractContent + + ", contractAmount=" + contractAmount + + ", externalProjectApply=" + externalProjectApply + + ", externalContractApply=" + externalContractApply + + ", principal=" + principal + + ", id=" + id + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java new file mode 100644 index 0000000..8718d91 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -0,0 +1,150 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_device") +public class Device extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_id") + private Long batchId; + private String devcode; + @TableField("devtype_id") + private Long devtypeId; + @TableField("is_send") + private String isSend; + private String longitude; + private String latitude; + @TableField("install_height") + private String installHeight; + private String iccid; + private Long imei; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public Long getImei() { + return imei; + } + + public void setImei(Long imei) { + this.imei = imei; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Device{" + + "id=" + id + + ", batchId=" + batchId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", isSend=" + isSend + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", installHeight=" + installHeight + + ", iccid=" + iccid + + ", imei=" + imei + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java new file mode 100644 index 0000000..870c36f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_payments") +public class Payments extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @TableField("paytime") + private Date paytime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getPaytime() { + return paytime; + } + + public void setPaytime(Date paytime) { + this.paytime = paytime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Payments{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", paytime=" + paytime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java new file mode 100644 index 0000000..ae6b585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -0,0 +1,285 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_device_type") +public class ProductDeviceType extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 产品名称 + */ + @TableField("product_name") + private String productName; + /** + * 产品型号 + */ + @TableField("product_model") + private String productModel; + + /** + * 通讯版本号 + */ + @TableField("communication_version") + private String communicationVersion; + + /** + * 产品类型 + */ + @TableField("product_type") + private String productType; + + /** + * 整机版本号 + */ + @TableField("machine_version") + private String machineVersion; + /** + * 硬件版本号 + */ + @TableField("hardware_version") + private String hardwareVersion; + /** + * 软件版本号 + */ + @TableField("software_version") + private String softwareVersion; + /** + * 设计归档 + */ + @TableField("design_archive") + private String designArchive; + /** + * 批产归档 + */ + @TableField("batch_filing") + private String batchFiling; + /** + * 状态 + */ + @TableField("status") + private Integer status; + /** + * 性能指标 + */ + @TableField("kpi") + private String kpi; + /** + * 批产负责人 + */ + @TableField("principal") + private String principal; + /** + * 定额汇总表 + */ + @TableField("quota_summary") + private String quotaSummary; + + /** + * 权属部门 + */ + @TableField("deptid") + private String deptid; + + /** + * 备注 + */ + @TableField("descn") + private String descn; + + @TableField("createtime") + private Date createtime; + + + @TableField(exist = false) + private String statusFmt; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } + + public String getMachineVersion() { + return machineVersion; + } + + public void setMachineVersion(String machineVersion) { + this.machineVersion = machineVersion; + } + + public String getHardwareVersion() { + return hardwareVersion; + } + + public void setHardwareVersion(String hardwareVersion) { + this.hardwareVersion = hardwareVersion; + } + + public String getSoftwareVersion() { + return softwareVersion; + } + + public void setSoftwareVersion(String softwareVersion) { + this.softwareVersion = softwareVersion; + } + + public String getDesignArchive() { + return designArchive; + } + + public void setDesignArchive(String designArchive) { + this.designArchive = designArchive; + } + + public String getBatchFiling() { + return batchFiling; + } + + public void setBatchFiling(String batchFiling) { + this.batchFiling = batchFiling; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getKpi() { + return kpi; + } + + public void setKpi(String kpi) { + this.kpi = kpi; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public String getQuotaSummary() { + return quotaSummary; + } + + public void setQuotaSummary(String quotaSummary) { + this.quotaSummary = quotaSummary; + } + + public String getStatusFmt() { + return statusFmt; + } + + public void setStatusFmt(String statusFmt) { + this.statusFmt = statusFmt; + } + + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getProductType() { + return productType; + } + + public void setProductType(String productType) { + this.productType = productType; + } + + public String getCommunicationVersion() { + return communicationVersion; + } + + public void setCommunicationVersion(String communicationVersion) { + this.communicationVersion = communicationVersion; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductDeviceType{" + + "id=" + id + + ", productName=" + productName + + ", productModel=" + productModel + + ", machineVersion=" + machineVersion + + ", hardwareVersion=" + hardwareVersion + + ", softwareVersion=" + softwareVersion + + ", designArchive=" + designArchive + + ", batchFiling=" + batchFiling + + ", status=" + status + + ", kpi=" + kpi + + ", principal=" + principal + + ", quotaSummary=" + quotaSummary + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java new file mode 100644 index 0000000..b0fd924 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java @@ -0,0 +1,187 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_factory_information") +public class ProductFactoryInformation extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 厂家名称 + */ + @TableField("name") + private String name; + /** + * 厂家联系人 + */ + @TableField("person_name") + private String personName; + /** + * 地址 + */ + @TableField("address") + private String address; + /** + * 电话 + */ + @TableField("phone") + private String phone; + /** + * 开户行 + */ + @TableField("bank") + private String bank; + /** + * 税号 + */ + @TableField("tax_number") + private String taxNumber; + /** + * 在产设备 + */ + @TableField("producting_device") + private String productingDevice; + /** + * 设备报价表 + */ + @TableField("equipment_quotation") + private String equipmentQuotation; + + @TableField("createtime") + private Date createtime =new Date(); + + @TableField("deptid") + private String deptid; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPersonName() { + return personName; + } + + public void setPersonName(String personName) { + this.personName = personName; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getBank() { + return bank; + } + + public void setBank(String bank) { + this.bank = bank; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getProductingDevice() { + return productingDevice; + } + + public void setProductingDevice(String productingDevice) { + this.productingDevice = productingDevice; + } + + public String getEquipmentQuotation() { + return equipmentQuotation; + } + + public void setEquipmentQuotation(String equipmentQuotation) { + this.equipmentQuotation = equipmentQuotation; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductFactoryInformation{" + + "id=" + id + + ", name=" + name + + ", personName=" + personName + + ", address=" + address + + ", phone=" + phone + + ", bank=" + bank + + ", taxNumber=" + taxNumber + + ", productingDevice=" + productingDevice + + ", equipmentQuotation=" + equipmentQuotation + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java new file mode 100644 index 0000000..00cbc92 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -0,0 +1,99 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@TableName("product_project") +public class Project extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_name") + private String projectName; + @TableField("project_simple_name") + private String projectSimpleName; + @TableField("project_manager") + private String projectManager; + private String descn; + @TableField("createtime") + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getProjectManager() { + return projectManager; + } + + public void setProjectManager(String projectManager) { + this.projectManager = projectManager; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Project{" + + "id=" + id + + ", projectName=" + projectName + + ", projectSimpleName=" + projectSimpleName + + ", projectManager=" + projectManager + + ", descn=" + descn + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java new file mode 100644 index 0000000..658c2e1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java @@ -0,0 +1,126 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_reimburse") +public class Reimburse extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mi:ss") + @TableField("reimburse_time") + private Date reimburseTime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getReimburseTime() { + return reimburseTime; + } + + public void setReimburseTime(Date reimburseTime) { + this.reimburseTime = reimburseTime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Reimburse{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", reimburseTime=" + reimburseTime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java new file mode 100644 index 0000000..987efa7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java @@ -0,0 +1,141 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_task") +public class Task extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_id") + private Long projectId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("devmode_id") + private String devmodeId; + private Long devcount; + @TableField("delivery_time") + private Date deliveryTime; + private String demand; + private Date createtime; + @TableField(exist = false) + private String deliveryTimeFmt; + + @TableField(exist = false) + private Long taskId; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getProjectId() { + return projectId; + } + + public void setProjectId(Long projectId) { + this.projectId = projectId; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDevmodeId() { + return devmodeId; + } + + public void setDevmodeId(String devmodeId) { + this.devmodeId = devmodeId; + } + + public Long getDevcount() { + return devcount; + } + + public void setDevcount(Long devcount) { + this.devcount = devcount; + } + + public Date getDeliveryTime() { + return deliveryTime; + } + + public void setDeliveryTime(Date deliveryTime) { + this.deliveryTime = deliveryTime; + } + + public String getDemand() { + return demand; + } + + public void setDemand(String demand) { + this.demand = demand; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeliveryTimeFmt() { + return deliveryTimeFmt; + } + + public void setDeliveryTimeFmt(String deliveryTimeFmt) { + this.deliveryTimeFmt = deliveryTimeFmt; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Task{" + + "id=" + id + + ", projectId=" + projectId + + ", devtypeId=" + devtypeId + + ", devmodeId=" + devmodeId + + ", devcount=" + devcount + + ", deliveryTime=" + deliveryTime + + ", demand=" + demand + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java new file mode 100644 index 0000000..7785de5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface IAccountService extends IService { + + /** + * 根据用户名查用户 + * @param userName + * @return + */ + Account findUserByName(String userName); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java new file mode 100644 index 0000000..d8b5e87 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IContractService extends IService { + List selectPageList(Page page, String keyword1, String keyword2, String keyword3); + List reportExport(String keyword1, String keyword2, String keyword3); + void importContract( List contracts); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java new file mode 100644 index 0000000..0f2d6e0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IPaymentsService extends IService { + + boolean validate(Long proId,String money,String reorder); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java new file mode 100644 index 0000000..71490df --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -0,0 +1,62 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductDeviceTypeService extends IService { + + /** + * 批量导入设备类型列表 + * @param results + */ + void importDeviceType(List results); + + /** + * 导出列表 + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List reportExport(String keyword1,String keyword2,String keyword3); + + + /** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectPageDataScope(DataScope dataScope, Page page, + String keyword1, String keyword2, String keyword3); + + /** + * 获取在产的设备类型 + * @return + */ + List selectDeviceTypeList(); + + /** + * 根据产品型号获取产品 + * @param deviceModel + * @return + */ + ProductDeviceType selectDeviceTypeByModel(String deviceModel); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java new file mode 100644 index 0000000..455f60a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductFactoryInformationService extends IService { + /** + * 根据条件导出列表 + * @param keyword1 + * @param keyword2 + * @return + */ + List reportExport(String keyword1, String keyword2); + + + /** + * 导入 + * @param results + */ + void importDeviceType(List results); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java new file mode 100644 index 0000000..3c27bd1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface IProjectService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java new file mode 100644 index 0000000..ee0a55c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IReimburseService extends IService { + boolean validate(Long proId,String money,String reorder); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java new file mode 100644 index 0000000..09ce653 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.dao.AccountMapper; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.stereotype.Service; + +/** + *

+ * 管理员表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@Service +public class AccountServiceImpl extends ServiceImpl implements IAccountService { + + @Override + public Account findUserByName(String userName) { + + EntityWrapper userEntityWrapper = new EntityWrapper<>(); + userEntityWrapper.eq("name",userName); + userEntityWrapper.eq("status","1"); + return this.selectOne(userEntityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java new file mode 100644 index 0000000..dd04da0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java @@ -0,0 +1,138 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.shiro.ShiroUser; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ContractMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IPaymentsService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ContractServiceImpl extends ServiceImpl implements IContractService { + @Autowired + private IPaymentsService paymentsService; + @Autowired + private ICommonPermissionService permissionService; + @Autowired + private IAccountService userService; + @Value("${casic.producerName}") + private String producerName; + @Value("${casic.repairName}") + private String repairName; + + @Override + public List selectPageList(Page page, String keyword1, String keyword2, String keyword3) { + +// EntityWrapper query = new EntityWrapper<>(); +// if (ToolUtil.isNotEmpty(keyword1)) { +// query.like("contract_factory", keyword1); +// } +// if (ToolUtil.isNotEmpty(keyword3)) { +// query.like("contract_number", keyword3); +// } +// List contractList = this.selectPage(page, query).getRecords(); +// contractList.forEach(contract -> { +// contract.setPaymentStatus(getPaymentStatus(contract)); +// String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" +// + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" +// + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); +// contract.setNetFlow(netFlowStr); +// +// }); +// return contractList; + + + List contractList = new ArrayList<>(); + DataScope dataScope = permissionService.getCurrUserDataScope(); + ShiroUser currentUser = permissionService.getCurrLoginUser(); + if (currentUser.getRoleTips().contains(producerName) || currentUser.getRoleTips().contains(repairName)) { + contractList = this.baseMapper.findContractList(dataScope,page, currentUser.getName(), keyword1, keyword2, keyword3); + } else { + contractList = this.baseMapper.findContractList(dataScope,page, "", keyword1, keyword2, keyword3); + } + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + + }); + return contractList; + } + + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + + + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("contractFactory", keyword1); + } + if (ToolUtil.isNotEmpty(keyword3)) { + query.like("contract_number", keyword3); + } + + List contractList = this.selectList(query); + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); +// permissionService.findInDictByCode("applyStatus") + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + }); + + return contractList; + } + + @Override + public void importContract(List contracts) { + contracts.forEach(contract -> { + EntityWrapper query = new EntityWrapper<>(); + query.eq("contract_number", contract.getContractNumber()); + this.delete(query); + Account user = userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); + this.insert(contract); + }); + } + + public String getPaymentStatus(Contract contract) { + Map paraMap = new HashMap<>(); + paraMap.put("pro_id", contract.getId()); + List paymentsList = paymentsService.selectByMap(paraMap); + float sum = 0; + for (Payments payments : paymentsList) { + sum = sum + (ToolUtil.isNotEmpty(payments.getMoney()) ? Float.parseFloat(payments.getMoney()) : 0); + } + DecimalFormat df = new DecimalFormat("0"); + return sum + "," + df.format(100 * sum / Float.valueOf(contract.getContractAmount())) + "%"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java new file mode 100644 index 0000000..0c125d8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PaymentsMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class PaymentsServiceImpl extends ServiceImpl implements IPaymentsService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money,String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List paymentsList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Payments payments : paymentsList) { + if(reorder.equals(payments.getReorder())) continue; + total += ToolUtil.isNotEmpty(payments.getMoney()) ? + Long.valueOf(payments.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java new file mode 100644 index 0000000..ac6d447 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductDeviceTypeMapper; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.swing.text.html.parser.Entity; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductDeviceTypeServiceImpl extends ServiceImpl implements IProductDeviceTypeService { + + @Autowired + private ICommonPermissionService permissionService; + + @Transactional(rollbackFor = Exception.class) + @Override + public void importDeviceType(List results) { + + for (ProductDeviceType productDeviceType : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + this.baseMapper.delete(wrapper); + this.baseMapper.insert(productDeviceType); + } + } + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + wrapper.like("principal", keyword3); + } + List productDeviceTypes = this.selectList(wrapper); + for (ProductDeviceType productDeviceType : productDeviceTypes) { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + } + return productDeviceTypes; + } + + @Override + public List selectPageDataScope(DataScope dataScope, Page page, String keyword1, String keyword2, String keyword3) { + + List productDeviceTypeList = this.baseMapper.selectDataScopePage(dataScope, page, keyword1, keyword2, keyword3); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + return productDeviceTypeList; + + } + + @Override + public List selectDeviceTypeList() { + return this.baseMapper.selectDeviceTypeList(); + } + + + @Override + public ProductDeviceType selectDeviceTypeByModel(String deviceModel) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("product_model",deviceModel); + return this.selectOne(entityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java new file mode 100644 index 0000000..efe4410 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java @@ -0,0 +1,50 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductFactoryInformationMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductFactoryInformationServiceImpl extends ServiceImpl implements IProductFactoryInformationService { + + @Override + public List reportExport(String keyword1, String keyword2) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.like("producting_device", keyword2); + } + List productFactoryInformations = this.selectList(wrapper); + + return productFactoryInformations; + } + + + @Transactional(rollbackFor=Exception.class) + @Override + public void importDeviceType(List results) { + for (ProductFactoryInformation productFactoryInformation : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + delete(wrapper); + this.baseMapper.insert(productFactoryInformation); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java new file mode 100644 index 0000000..34655b0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.dao.ProjectMapper; +import com.casic.missiles.modular.system.service.IProjectService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@Service +public class ProjectServiceImpl extends ServiceImpl implements IProjectService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java new file mode 100644 index 0000000..5e8b77b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java @@ -0,0 +1,48 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.dao.ReimburseMapper; +import com.casic.missiles.modular.system.service.IReimburseService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ReimburseServiceImpl extends ServiceImpl implements IReimburseService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money, String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List reimburseList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Reimburse reimburse : reimburseList) { + if (reorder.equals(reimburse.getReorder())) continue; + total += ToolUtil.isNotEmpty(reimburse.getMoney()) ? + Long.valueOf(reimburse.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java new file mode 100644 index 0000000..d5ffadb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java @@ -0,0 +1,235 @@ +package com.casic.missiles.modular.system.util; + +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; + +import java.util.*; + +/** + * @author test203 + * @since 2020-04-06 + */ +public class DeviceUtil { + private final static String factoryCode = "20"; + private final static String wellExcludeCode = "4120"; + private final static String loraDevice = "A"; + private static Map devTypeCountHashMap = new HashMap(); + + static { + devTypeCountHashMap.put("电子标识器", 99999L); + devTypeCountHashMap.put("井盖状态监测仪", 65534L); + devTypeCountHashMap.put("灯箱控制器", 65535L); + devTypeCountHashMap.put("单灯控制器(单路)", 65535L); + devTypeCountHashMap.put("单灯控制器(双路)", 65535L); + devTypeCountHashMap.put("数据集中器", 255L); + devTypeCountHashMap.put("有害气体监测仪", 999L); + } + + public static List createDevCodes(ProductDeviceType deviceType, List batches) { + List deviceList = new ArrayList<>(); + try { + if ("电子标识器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 年份XX 批次号XX 编号XXXXX + String devCode = deviceType.getProductType() + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%05d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("井盖状态监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + String wellCode4 = String.format("%04x", i); + if (wellExcludeCode.equals(wellCode4)) { + continue; + } + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + wellCode4; + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("灯箱控制器".equals(deviceType.getProductName()) || + "单灯控制器(单路)".equals(deviceType.getProductName()) || + "单灯控制器(双路)".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("数据集中器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("有害气体监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型WS2000X- 年份XX 批次序号XXXX 编号XXX + String devCode = deviceType.getProductType() + + getYearFmt() + + String.format("%04d", batch.getBatchNumber()) + + String.format("%03d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } + //其他设备类型分lora和非lora版本 + else { + if (loraDevice.equals(deviceType.getCommunicationVersion())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } else { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return deviceList; + } + + + public static Map validate(ProductDeviceType deviceType, List batches, Task task) { + Map resultMap = new HashMap<>(); + boolean success = true; + String msg = ""; + long devSum = null != task ? task.getDevcount() : 0; + long devcount = 0, batchCountMax; + batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? + 0 : devTypeCountHashMap.get(deviceType.getProductName()); + if (0 == batchCountMax) { + if (deviceType.getProductModel().indexOf(loraDevice) + == deviceType.getProductModel().length() - 1) { + batchCountMax = 255; + } else { + batchCountMax = 9999; + } + } + for (Batch batch : batches) { + if (batch.getBatchCount() > batchCountMax) { + success = false; + msg = batch.getBatchNumber() + "批次号数量超过了最大范围" + batchCountMax; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + devcount += batch.getBatchCount(); + } + if (devcount != devSum) { + return returnMsg(); + } + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + + public static Map returnMsg() { + Map resultMap = new HashMap<>(); + resultMap.put("success", false); + resultMap.put("msg", "所有批次数量之和与任务中设备数量不一致!"); + return resultMap; + } + + /** + * 获取编码中的年份 + * + * @return + */ + public static String getYearFmt() { + + return DateUtil.format(new Date(), "yyyy").substring(2); + } + + + /** + * 比较2个map + * + * @param batchMap + * @param batchMap1 + * @return + */ + public static boolean equalMap(Map batchMap, Map batchMap1) { + if (batchMap.size() != batchMap1.size()) { + return false; + } + Iterator iter1 = batchMap.keySet().iterator(); + while (iter1.hasNext()) { + Long map1key = iter1.next(); + String map1value = batchMap.get(map1key).toString(); + String map2value = batchMap1.get(map1key).toString(); + if (!map1value.equals(map2value)) { + return false; + } + } + return true; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java new file mode 100644 index 0000000..33c3535 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java @@ -0,0 +1,43 @@ +package com.casic.missiles.modular.system.util; + +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; + +public class FileUtil { + public static File createFile(String path) throws IOException { + File file = new File(path); + if (!file.exists()) { + file.getParentFile().mkdirs(); + file.createNewFile(); + } + return file; + } + + + public static void downloadLocalFile(HttpServletResponse response,String path, String fileName) throws IOException { + File file = new File(path); + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", "attachment; filename=\"" + URLEncoder.encode(fileName, "UTF-8") + "\""); + response.setContentLength((int) file.length()); + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java new file mode 100644 index 0000000..341d3d1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.task.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.task.service.IBatchService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 批次控制器 + * + * @author dev + * @Date 2020-03-27 15:29:55 + */ +@Controller +@RequestMapping("/batch") +public class BatchController extends BaseController { + + + @Autowired + private IBatchService batchService; + + + /** + * 获取批次列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return batchService.selectList(null); + } + + /** + * 获取批次分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = batchService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增批次并生成设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + @Transactional + public Object add(@RequestBody List batches, Task task) { + + return batchService.addBatchAndDevices(batches,task); + + } + + /** + * 删除批次 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String batchId) { + batchService.deleteById(batchId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("batchIds") List batchIds) { + batchService.deleteBatchIds(batchIds); + return ResponseData.success(); + } + + /** + * 修改批次 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Batch batch) { + batchService.updateById(batch); + return ResponseData.success(); + } + + + /** + * 根据设备类型id + * 查找批次号 + */ + @RequestMapping(value = "/getBatchNumber") + @ResponseBody + public Object getBatchNumber(Long devtypeId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.orderBy("id", false); + Batch batch = batchService.selectOne(entityWrapper); + return ResponseData.success(200, "", batch != null ? batch.getBatchNumber() + 1 : 1); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java new file mode 100644 index 0000000..f463168 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java @@ -0,0 +1,102 @@ +package com.casic.missiles.modular.task.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * 任务控制器 + * + * @author dev + * @Date 2020-03-27 15:28:26 + */ +@Controller +@RequestMapping("/task") +public class TaskController extends BaseController { + + + @Autowired + private ITaskService taskService; + + + /** + * 获取任务列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return taskService.selectList(null); + } + + /** + * 获取任务分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = taskService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增任务 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + taskService.insert(task); + return ResponseData.success(); + } + + /** + * 删除任务 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String taskId) { + taskService.deleteById(taskId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("taskIds") List taskIds) { + taskService.deleteBatchIds(taskIds); + return ResponseData.success(); + } + + /** + * 修改任务 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + taskService.updateById(task); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java new file mode 100644 index 0000000..04c7ef8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.task.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IBatchService extends IService { + + /** + * 添加批次和生成设备 + * @param batches + * @param task + * @return + */ + ResponseData addBatchAndDevices(List batches, Task task); +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java new file mode 100644 index 0000000..4670df3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 集中器相关日志 + */ +public class ProjectDict extends AbstractDictMap { + public static final String PROJECT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + @Override + public void init() { + put("projectName","项目名称"); + put("projectSimpleName","项目简称"); + put("projectManager","项目经理"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java new file mode 100644 index 0000000..7981a17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dto; + +/** + * 用于设备类型展示 + * @author test203 + * @date 2020-04-03 + */ +public class DeviceTypeDto { + private Long id; + private String productName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java new file mode 100644 index 0000000..f254585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java @@ -0,0 +1,361 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.math.BigDecimal; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; + +/** + *

+ * 管理员表 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@TableName("sys_user") +public class Account extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + /** + * 头像 + */ + private String avatar; + /** + * 账号 + */ + private String account; + /** + * 密码 + */ + private String password; + /** + * md5密码盐 + */ + private String salt; + /** + * 名字 + */ + private String name; + /** + * 生日 + */ + private Date birthday; + /** + * 性别(1:男 2:女) + */ + private String sex; + /** + * 电子邮件 + */ + private String email; + /** + * 电话 + */ + private String phone; + /** + * 角色id + */ + private String roleid; + /** + * 部门id + */ + private Long deptid; + /** + * 状态(1:启用 2:冻结 3:删除) + */ + private String status; + /** + * 创建时间 + */ + private Date createtime; + /** + * 保留字段 + */ + private Integer version; + private String targetid; + private String targetname; + @TableField("password_sync") + private String passwordSync; + @TableField("IS_SYNC") + private Integer isSync; + private String simplename; + /** + * 同步组织ID + */ + @TableField("TARGET_DEPTID_SYNC") + private String targetDeptidSync; + @TableField("LOGIN_IP") + private String loginIp; + @TableField("LOGIN_MAC") + private String loginMac; + /** + * 最后在线时间 + */ + @TableField("LAST_TIME") + private Date lastTime; + /** + * 经度 + */ + @TableField("POSITION_LNG") + private BigDecimal positionLng; + /** + * 纬度 + */ + @TableField("POSITION_LAT") + private BigDecimal positionLat; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt() { + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getRoleid() { + return roleid; + } + + public void setRoleid(String roleid) { + this.roleid = roleid; + } + + public Long getDeptid() { + return deptid; + } + + public void setDeptid(Long deptid) { + this.deptid = deptid; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + public String getTargetid() { + return targetid; + } + + public void setTargetid(String targetid) { + this.targetid = targetid; + } + + public String getTargetname() { + return targetname; + } + + public void setTargetname(String targetname) { + this.targetname = targetname; + } + + public String getPasswordSync() { + return passwordSync; + } + + public void setPasswordSync(String passwordSync) { + this.passwordSync = passwordSync; + } + + public Integer getIsSync() { + return isSync; + } + + public void setIsSync(Integer isSync) { + this.isSync = isSync; + } + + public String getSimplename() { + return simplename; + } + + public void setSimplename(String simplename) { + this.simplename = simplename; + } + + public String getTargetDeptidSync() { + return targetDeptidSync; + } + + public void setTargetDeptidSync(String targetDeptidSync) { + this.targetDeptidSync = targetDeptidSync; + } + + public String getLoginIp() { + return loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getLoginMac() { + return loginMac; + } + + public void setLoginMac(String loginMac) { + this.loginMac = loginMac; + } + + public Date getLastTime() { + return lastTime; + } + + public void setLastTime(Date lastTime) { + this.lastTime = lastTime; + } + + public BigDecimal getPositionLng() { + return positionLng; + } + + public void setPositionLng(BigDecimal positionLng) { + this.positionLng = positionLng; + } + + public BigDecimal getPositionLat() { + return positionLat; + } + + public void setPositionLat(BigDecimal positionLat) { + this.positionLat = positionLat; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", avatar=" + avatar + + ", account=" + account + + ", password=" + password + + ", salt=" + salt + + ", name=" + name + + ", birthday=" + birthday + + ", sex=" + sex + + ", email=" + email + + ", phone=" + phone + + ", roleid=" + roleid + + ", deptid=" + deptid + + ", status=" + status + + ", createtime=" + createtime + + ", version=" + version + + ", targetid=" + targetid + + ", targetname=" + targetname + + ", passwordSync=" + passwordSync + + ", isSync=" + isSync + + ", simplename=" + simplename + + ", targetDeptidSync=" + targetDeptidSync + + ", loginIp=" + loginIp + + ", loginMac=" + loginMac + + ", lastTime=" + lastTime + + ", positionLng=" + positionLng + + ", positionLat=" + positionLat + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java new file mode 100644 index 0000000..81516b7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -0,0 +1,110 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_batch") +public class Batch extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_number") + private Long batchNumber; + @TableField("batch_count") + private Long batchCount; + @TableField("contract_id") + private Long contractId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("task_id") + private Long taskId; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(Long batchNumber) { + this.batchNumber = batchNumber; + } + + public Long getBatchCount() { + return batchCount; + } + + public void setBatchCount(Long batchCount) { + this.batchCount = batchCount; + } + + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Batch{" + + "id=" + id + + ", batchNumber=" + batchNumber + + ", batchCount=" + batchCount + + ", contractId=" + contractId + + ", taskId=" + taskId + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java new file mode 100644 index 0000000..893a1ed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -0,0 +1,186 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_contract") +public class Contract extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("contract_number") + private String contractNumber; + @TableField("contract_name") + private String contractName; + @TableField("contract_content") + private String contractContent; + @TableField("contract_amount") + private String contractAmount; + @TableField("external_project_apply") + private String externalProjectApply; + @TableField("external_contract_apply") + private String externalContractApply; + @TableField("principal") + private String principal; + @TableField("external_check_apply") + private String externalCheckApply; + @TableField("contract_factory") + private String contractFactory; + @TableField("createtime") + private Date createtime; + @TableField(exist = false) + private String paymentStatus; + @TableField(exist = false) + private String netFlow; + @TableField("deptid") + private String deptid; + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getContractName() { + return contractName; + } + + public void setContractName(String contractName) { + this.contractName = contractName; + } + + public String getContractContent() { + return contractContent; + } + + public void setContractContent(String contractContent) { + this.contractContent = contractContent; + } + + public String getContractAmount() { + return contractAmount; + } + + public void setContractAmount(String contractAmount) { + this.contractAmount = contractAmount; + } + + public String getExternalProjectApply() { + return externalProjectApply; + } + + public void setExternalProjectApply(String externalProjectApply) { + this.externalProjectApply = externalProjectApply; + } + + public String getExternalContractApply() { + return externalContractApply; + } + + public void setExternalContractApply(String externalContractApply) { + this.externalContractApply = externalContractApply; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalCheckApply() { + return externalCheckApply; + } + + public void setExternalCheckApply(String externalCheckApply) { + this.externalCheckApply = externalCheckApply; + } + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public String getContractFactory() { + return contractFactory; + } + + public void setContractFactory(String contractFactory) { + this.contractFactory = contractFactory; + } + + public String getNetFlow() { + return netFlow; + } + + public void setNetFlow(String netFlow) { + this.netFlow = netFlow; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Contract{" + + "contractNumber=" + contractNumber + + ", contractName=" + contractName + + ", contractContent=" + contractContent + + ", contractAmount=" + contractAmount + + ", externalProjectApply=" + externalProjectApply + + ", externalContractApply=" + externalContractApply + + ", principal=" + principal + + ", id=" + id + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java new file mode 100644 index 0000000..8718d91 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -0,0 +1,150 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_device") +public class Device extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_id") + private Long batchId; + private String devcode; + @TableField("devtype_id") + private Long devtypeId; + @TableField("is_send") + private String isSend; + private String longitude; + private String latitude; + @TableField("install_height") + private String installHeight; + private String iccid; + private Long imei; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public Long getImei() { + return imei; + } + + public void setImei(Long imei) { + this.imei = imei; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Device{" + + "id=" + id + + ", batchId=" + batchId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", isSend=" + isSend + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", installHeight=" + installHeight + + ", iccid=" + iccid + + ", imei=" + imei + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java new file mode 100644 index 0000000..870c36f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_payments") +public class Payments extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @TableField("paytime") + private Date paytime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getPaytime() { + return paytime; + } + + public void setPaytime(Date paytime) { + this.paytime = paytime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Payments{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", paytime=" + paytime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java new file mode 100644 index 0000000..ae6b585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -0,0 +1,285 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_device_type") +public class ProductDeviceType extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 产品名称 + */ + @TableField("product_name") + private String productName; + /** + * 产品型号 + */ + @TableField("product_model") + private String productModel; + + /** + * 通讯版本号 + */ + @TableField("communication_version") + private String communicationVersion; + + /** + * 产品类型 + */ + @TableField("product_type") + private String productType; + + /** + * 整机版本号 + */ + @TableField("machine_version") + private String machineVersion; + /** + * 硬件版本号 + */ + @TableField("hardware_version") + private String hardwareVersion; + /** + * 软件版本号 + */ + @TableField("software_version") + private String softwareVersion; + /** + * 设计归档 + */ + @TableField("design_archive") + private String designArchive; + /** + * 批产归档 + */ + @TableField("batch_filing") + private String batchFiling; + /** + * 状态 + */ + @TableField("status") + private Integer status; + /** + * 性能指标 + */ + @TableField("kpi") + private String kpi; + /** + * 批产负责人 + */ + @TableField("principal") + private String principal; + /** + * 定额汇总表 + */ + @TableField("quota_summary") + private String quotaSummary; + + /** + * 权属部门 + */ + @TableField("deptid") + private String deptid; + + /** + * 备注 + */ + @TableField("descn") + private String descn; + + @TableField("createtime") + private Date createtime; + + + @TableField(exist = false) + private String statusFmt; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } + + public String getMachineVersion() { + return machineVersion; + } + + public void setMachineVersion(String machineVersion) { + this.machineVersion = machineVersion; + } + + public String getHardwareVersion() { + return hardwareVersion; + } + + public void setHardwareVersion(String hardwareVersion) { + this.hardwareVersion = hardwareVersion; + } + + public String getSoftwareVersion() { + return softwareVersion; + } + + public void setSoftwareVersion(String softwareVersion) { + this.softwareVersion = softwareVersion; + } + + public String getDesignArchive() { + return designArchive; + } + + public void setDesignArchive(String designArchive) { + this.designArchive = designArchive; + } + + public String getBatchFiling() { + return batchFiling; + } + + public void setBatchFiling(String batchFiling) { + this.batchFiling = batchFiling; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getKpi() { + return kpi; + } + + public void setKpi(String kpi) { + this.kpi = kpi; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public String getQuotaSummary() { + return quotaSummary; + } + + public void setQuotaSummary(String quotaSummary) { + this.quotaSummary = quotaSummary; + } + + public String getStatusFmt() { + return statusFmt; + } + + public void setStatusFmt(String statusFmt) { + this.statusFmt = statusFmt; + } + + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getProductType() { + return productType; + } + + public void setProductType(String productType) { + this.productType = productType; + } + + public String getCommunicationVersion() { + return communicationVersion; + } + + public void setCommunicationVersion(String communicationVersion) { + this.communicationVersion = communicationVersion; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductDeviceType{" + + "id=" + id + + ", productName=" + productName + + ", productModel=" + productModel + + ", machineVersion=" + machineVersion + + ", hardwareVersion=" + hardwareVersion + + ", softwareVersion=" + softwareVersion + + ", designArchive=" + designArchive + + ", batchFiling=" + batchFiling + + ", status=" + status + + ", kpi=" + kpi + + ", principal=" + principal + + ", quotaSummary=" + quotaSummary + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java new file mode 100644 index 0000000..b0fd924 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java @@ -0,0 +1,187 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_factory_information") +public class ProductFactoryInformation extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 厂家名称 + */ + @TableField("name") + private String name; + /** + * 厂家联系人 + */ + @TableField("person_name") + private String personName; + /** + * 地址 + */ + @TableField("address") + private String address; + /** + * 电话 + */ + @TableField("phone") + private String phone; + /** + * 开户行 + */ + @TableField("bank") + private String bank; + /** + * 税号 + */ + @TableField("tax_number") + private String taxNumber; + /** + * 在产设备 + */ + @TableField("producting_device") + private String productingDevice; + /** + * 设备报价表 + */ + @TableField("equipment_quotation") + private String equipmentQuotation; + + @TableField("createtime") + private Date createtime =new Date(); + + @TableField("deptid") + private String deptid; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPersonName() { + return personName; + } + + public void setPersonName(String personName) { + this.personName = personName; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getBank() { + return bank; + } + + public void setBank(String bank) { + this.bank = bank; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getProductingDevice() { + return productingDevice; + } + + public void setProductingDevice(String productingDevice) { + this.productingDevice = productingDevice; + } + + public String getEquipmentQuotation() { + return equipmentQuotation; + } + + public void setEquipmentQuotation(String equipmentQuotation) { + this.equipmentQuotation = equipmentQuotation; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductFactoryInformation{" + + "id=" + id + + ", name=" + name + + ", personName=" + personName + + ", address=" + address + + ", phone=" + phone + + ", bank=" + bank + + ", taxNumber=" + taxNumber + + ", productingDevice=" + productingDevice + + ", equipmentQuotation=" + equipmentQuotation + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java new file mode 100644 index 0000000..00cbc92 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -0,0 +1,99 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@TableName("product_project") +public class Project extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_name") + private String projectName; + @TableField("project_simple_name") + private String projectSimpleName; + @TableField("project_manager") + private String projectManager; + private String descn; + @TableField("createtime") + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getProjectManager() { + return projectManager; + } + + public void setProjectManager(String projectManager) { + this.projectManager = projectManager; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Project{" + + "id=" + id + + ", projectName=" + projectName + + ", projectSimpleName=" + projectSimpleName + + ", projectManager=" + projectManager + + ", descn=" + descn + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java new file mode 100644 index 0000000..658c2e1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java @@ -0,0 +1,126 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_reimburse") +public class Reimburse extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mi:ss") + @TableField("reimburse_time") + private Date reimburseTime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getReimburseTime() { + return reimburseTime; + } + + public void setReimburseTime(Date reimburseTime) { + this.reimburseTime = reimburseTime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Reimburse{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", reimburseTime=" + reimburseTime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java new file mode 100644 index 0000000..987efa7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java @@ -0,0 +1,141 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_task") +public class Task extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_id") + private Long projectId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("devmode_id") + private String devmodeId; + private Long devcount; + @TableField("delivery_time") + private Date deliveryTime; + private String demand; + private Date createtime; + @TableField(exist = false) + private String deliveryTimeFmt; + + @TableField(exist = false) + private Long taskId; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getProjectId() { + return projectId; + } + + public void setProjectId(Long projectId) { + this.projectId = projectId; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDevmodeId() { + return devmodeId; + } + + public void setDevmodeId(String devmodeId) { + this.devmodeId = devmodeId; + } + + public Long getDevcount() { + return devcount; + } + + public void setDevcount(Long devcount) { + this.devcount = devcount; + } + + public Date getDeliveryTime() { + return deliveryTime; + } + + public void setDeliveryTime(Date deliveryTime) { + this.deliveryTime = deliveryTime; + } + + public String getDemand() { + return demand; + } + + public void setDemand(String demand) { + this.demand = demand; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeliveryTimeFmt() { + return deliveryTimeFmt; + } + + public void setDeliveryTimeFmt(String deliveryTimeFmt) { + this.deliveryTimeFmt = deliveryTimeFmt; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Task{" + + "id=" + id + + ", projectId=" + projectId + + ", devtypeId=" + devtypeId + + ", devmodeId=" + devmodeId + + ", devcount=" + devcount + + ", deliveryTime=" + deliveryTime + + ", demand=" + demand + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java new file mode 100644 index 0000000..7785de5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface IAccountService extends IService { + + /** + * 根据用户名查用户 + * @param userName + * @return + */ + Account findUserByName(String userName); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java new file mode 100644 index 0000000..d8b5e87 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IContractService extends IService { + List selectPageList(Page page, String keyword1, String keyword2, String keyword3); + List reportExport(String keyword1, String keyword2, String keyword3); + void importContract( List contracts); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java new file mode 100644 index 0000000..0f2d6e0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IPaymentsService extends IService { + + boolean validate(Long proId,String money,String reorder); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java new file mode 100644 index 0000000..71490df --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -0,0 +1,62 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductDeviceTypeService extends IService { + + /** + * 批量导入设备类型列表 + * @param results + */ + void importDeviceType(List results); + + /** + * 导出列表 + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List reportExport(String keyword1,String keyword2,String keyword3); + + + /** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectPageDataScope(DataScope dataScope, Page page, + String keyword1, String keyword2, String keyword3); + + /** + * 获取在产的设备类型 + * @return + */ + List selectDeviceTypeList(); + + /** + * 根据产品型号获取产品 + * @param deviceModel + * @return + */ + ProductDeviceType selectDeviceTypeByModel(String deviceModel); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java new file mode 100644 index 0000000..455f60a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductFactoryInformationService extends IService { + /** + * 根据条件导出列表 + * @param keyword1 + * @param keyword2 + * @return + */ + List reportExport(String keyword1, String keyword2); + + + /** + * 导入 + * @param results + */ + void importDeviceType(List results); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java new file mode 100644 index 0000000..3c27bd1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface IProjectService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java new file mode 100644 index 0000000..ee0a55c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IReimburseService extends IService { + boolean validate(Long proId,String money,String reorder); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java new file mode 100644 index 0000000..09ce653 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.dao.AccountMapper; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.stereotype.Service; + +/** + *

+ * 管理员表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@Service +public class AccountServiceImpl extends ServiceImpl implements IAccountService { + + @Override + public Account findUserByName(String userName) { + + EntityWrapper userEntityWrapper = new EntityWrapper<>(); + userEntityWrapper.eq("name",userName); + userEntityWrapper.eq("status","1"); + return this.selectOne(userEntityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java new file mode 100644 index 0000000..dd04da0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java @@ -0,0 +1,138 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.shiro.ShiroUser; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ContractMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IPaymentsService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ContractServiceImpl extends ServiceImpl implements IContractService { + @Autowired + private IPaymentsService paymentsService; + @Autowired + private ICommonPermissionService permissionService; + @Autowired + private IAccountService userService; + @Value("${casic.producerName}") + private String producerName; + @Value("${casic.repairName}") + private String repairName; + + @Override + public List selectPageList(Page page, String keyword1, String keyword2, String keyword3) { + +// EntityWrapper query = new EntityWrapper<>(); +// if (ToolUtil.isNotEmpty(keyword1)) { +// query.like("contract_factory", keyword1); +// } +// if (ToolUtil.isNotEmpty(keyword3)) { +// query.like("contract_number", keyword3); +// } +// List contractList = this.selectPage(page, query).getRecords(); +// contractList.forEach(contract -> { +// contract.setPaymentStatus(getPaymentStatus(contract)); +// String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" +// + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" +// + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); +// contract.setNetFlow(netFlowStr); +// +// }); +// return contractList; + + + List contractList = new ArrayList<>(); + DataScope dataScope = permissionService.getCurrUserDataScope(); + ShiroUser currentUser = permissionService.getCurrLoginUser(); + if (currentUser.getRoleTips().contains(producerName) || currentUser.getRoleTips().contains(repairName)) { + contractList = this.baseMapper.findContractList(dataScope,page, currentUser.getName(), keyword1, keyword2, keyword3); + } else { + contractList = this.baseMapper.findContractList(dataScope,page, "", keyword1, keyword2, keyword3); + } + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + + }); + return contractList; + } + + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + + + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("contractFactory", keyword1); + } + if (ToolUtil.isNotEmpty(keyword3)) { + query.like("contract_number", keyword3); + } + + List contractList = this.selectList(query); + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); +// permissionService.findInDictByCode("applyStatus") + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + }); + + return contractList; + } + + @Override + public void importContract(List contracts) { + contracts.forEach(contract -> { + EntityWrapper query = new EntityWrapper<>(); + query.eq("contract_number", contract.getContractNumber()); + this.delete(query); + Account user = userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); + this.insert(contract); + }); + } + + public String getPaymentStatus(Contract contract) { + Map paraMap = new HashMap<>(); + paraMap.put("pro_id", contract.getId()); + List paymentsList = paymentsService.selectByMap(paraMap); + float sum = 0; + for (Payments payments : paymentsList) { + sum = sum + (ToolUtil.isNotEmpty(payments.getMoney()) ? Float.parseFloat(payments.getMoney()) : 0); + } + DecimalFormat df = new DecimalFormat("0"); + return sum + "," + df.format(100 * sum / Float.valueOf(contract.getContractAmount())) + "%"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java new file mode 100644 index 0000000..0c125d8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PaymentsMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class PaymentsServiceImpl extends ServiceImpl implements IPaymentsService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money,String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List paymentsList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Payments payments : paymentsList) { + if(reorder.equals(payments.getReorder())) continue; + total += ToolUtil.isNotEmpty(payments.getMoney()) ? + Long.valueOf(payments.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java new file mode 100644 index 0000000..ac6d447 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductDeviceTypeMapper; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.swing.text.html.parser.Entity; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductDeviceTypeServiceImpl extends ServiceImpl implements IProductDeviceTypeService { + + @Autowired + private ICommonPermissionService permissionService; + + @Transactional(rollbackFor = Exception.class) + @Override + public void importDeviceType(List results) { + + for (ProductDeviceType productDeviceType : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + this.baseMapper.delete(wrapper); + this.baseMapper.insert(productDeviceType); + } + } + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + wrapper.like("principal", keyword3); + } + List productDeviceTypes = this.selectList(wrapper); + for (ProductDeviceType productDeviceType : productDeviceTypes) { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + } + return productDeviceTypes; + } + + @Override + public List selectPageDataScope(DataScope dataScope, Page page, String keyword1, String keyword2, String keyword3) { + + List productDeviceTypeList = this.baseMapper.selectDataScopePage(dataScope, page, keyword1, keyword2, keyword3); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + return productDeviceTypeList; + + } + + @Override + public List selectDeviceTypeList() { + return this.baseMapper.selectDeviceTypeList(); + } + + + @Override + public ProductDeviceType selectDeviceTypeByModel(String deviceModel) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("product_model",deviceModel); + return this.selectOne(entityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java new file mode 100644 index 0000000..efe4410 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java @@ -0,0 +1,50 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductFactoryInformationMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductFactoryInformationServiceImpl extends ServiceImpl implements IProductFactoryInformationService { + + @Override + public List reportExport(String keyword1, String keyword2) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.like("producting_device", keyword2); + } + List productFactoryInformations = this.selectList(wrapper); + + return productFactoryInformations; + } + + + @Transactional(rollbackFor=Exception.class) + @Override + public void importDeviceType(List results) { + for (ProductFactoryInformation productFactoryInformation : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + delete(wrapper); + this.baseMapper.insert(productFactoryInformation); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java new file mode 100644 index 0000000..34655b0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.dao.ProjectMapper; +import com.casic.missiles.modular.system.service.IProjectService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@Service +public class ProjectServiceImpl extends ServiceImpl implements IProjectService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java new file mode 100644 index 0000000..5e8b77b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java @@ -0,0 +1,48 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.dao.ReimburseMapper; +import com.casic.missiles.modular.system.service.IReimburseService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ReimburseServiceImpl extends ServiceImpl implements IReimburseService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money, String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List reimburseList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Reimburse reimburse : reimburseList) { + if (reorder.equals(reimburse.getReorder())) continue; + total += ToolUtil.isNotEmpty(reimburse.getMoney()) ? + Long.valueOf(reimburse.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java new file mode 100644 index 0000000..d5ffadb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java @@ -0,0 +1,235 @@ +package com.casic.missiles.modular.system.util; + +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; + +import java.util.*; + +/** + * @author test203 + * @since 2020-04-06 + */ +public class DeviceUtil { + private final static String factoryCode = "20"; + private final static String wellExcludeCode = "4120"; + private final static String loraDevice = "A"; + private static Map devTypeCountHashMap = new HashMap(); + + static { + devTypeCountHashMap.put("电子标识器", 99999L); + devTypeCountHashMap.put("井盖状态监测仪", 65534L); + devTypeCountHashMap.put("灯箱控制器", 65535L); + devTypeCountHashMap.put("单灯控制器(单路)", 65535L); + devTypeCountHashMap.put("单灯控制器(双路)", 65535L); + devTypeCountHashMap.put("数据集中器", 255L); + devTypeCountHashMap.put("有害气体监测仪", 999L); + } + + public static List createDevCodes(ProductDeviceType deviceType, List batches) { + List deviceList = new ArrayList<>(); + try { + if ("电子标识器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 年份XX 批次号XX 编号XXXXX + String devCode = deviceType.getProductType() + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%05d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("井盖状态监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + String wellCode4 = String.format("%04x", i); + if (wellExcludeCode.equals(wellCode4)) { + continue; + } + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + wellCode4; + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("灯箱控制器".equals(deviceType.getProductName()) || + "单灯控制器(单路)".equals(deviceType.getProductName()) || + "单灯控制器(双路)".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("数据集中器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("有害气体监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型WS2000X- 年份XX 批次序号XXXX 编号XXX + String devCode = deviceType.getProductType() + + getYearFmt() + + String.format("%04d", batch.getBatchNumber()) + + String.format("%03d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } + //其他设备类型分lora和非lora版本 + else { + if (loraDevice.equals(deviceType.getCommunicationVersion())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } else { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return deviceList; + } + + + public static Map validate(ProductDeviceType deviceType, List batches, Task task) { + Map resultMap = new HashMap<>(); + boolean success = true; + String msg = ""; + long devSum = null != task ? task.getDevcount() : 0; + long devcount = 0, batchCountMax; + batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? + 0 : devTypeCountHashMap.get(deviceType.getProductName()); + if (0 == batchCountMax) { + if (deviceType.getProductModel().indexOf(loraDevice) + == deviceType.getProductModel().length() - 1) { + batchCountMax = 255; + } else { + batchCountMax = 9999; + } + } + for (Batch batch : batches) { + if (batch.getBatchCount() > batchCountMax) { + success = false; + msg = batch.getBatchNumber() + "批次号数量超过了最大范围" + batchCountMax; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + devcount += batch.getBatchCount(); + } + if (devcount != devSum) { + return returnMsg(); + } + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + + public static Map returnMsg() { + Map resultMap = new HashMap<>(); + resultMap.put("success", false); + resultMap.put("msg", "所有批次数量之和与任务中设备数量不一致!"); + return resultMap; + } + + /** + * 获取编码中的年份 + * + * @return + */ + public static String getYearFmt() { + + return DateUtil.format(new Date(), "yyyy").substring(2); + } + + + /** + * 比较2个map + * + * @param batchMap + * @param batchMap1 + * @return + */ + public static boolean equalMap(Map batchMap, Map batchMap1) { + if (batchMap.size() != batchMap1.size()) { + return false; + } + Iterator iter1 = batchMap.keySet().iterator(); + while (iter1.hasNext()) { + Long map1key = iter1.next(); + String map1value = batchMap.get(map1key).toString(); + String map2value = batchMap1.get(map1key).toString(); + if (!map1value.equals(map2value)) { + return false; + } + } + return true; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java new file mode 100644 index 0000000..33c3535 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java @@ -0,0 +1,43 @@ +package com.casic.missiles.modular.system.util; + +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; + +public class FileUtil { + public static File createFile(String path) throws IOException { + File file = new File(path); + if (!file.exists()) { + file.getParentFile().mkdirs(); + file.createNewFile(); + } + return file; + } + + + public static void downloadLocalFile(HttpServletResponse response,String path, String fileName) throws IOException { + File file = new File(path); + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", "attachment; filename=\"" + URLEncoder.encode(fileName, "UTF-8") + "\""); + response.setContentLength((int) file.length()); + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java new file mode 100644 index 0000000..341d3d1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.task.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.task.service.IBatchService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 批次控制器 + * + * @author dev + * @Date 2020-03-27 15:29:55 + */ +@Controller +@RequestMapping("/batch") +public class BatchController extends BaseController { + + + @Autowired + private IBatchService batchService; + + + /** + * 获取批次列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return batchService.selectList(null); + } + + /** + * 获取批次分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = batchService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增批次并生成设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + @Transactional + public Object add(@RequestBody List batches, Task task) { + + return batchService.addBatchAndDevices(batches,task); + + } + + /** + * 删除批次 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String batchId) { + batchService.deleteById(batchId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("batchIds") List batchIds) { + batchService.deleteBatchIds(batchIds); + return ResponseData.success(); + } + + /** + * 修改批次 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Batch batch) { + batchService.updateById(batch); + return ResponseData.success(); + } + + + /** + * 根据设备类型id + * 查找批次号 + */ + @RequestMapping(value = "/getBatchNumber") + @ResponseBody + public Object getBatchNumber(Long devtypeId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.orderBy("id", false); + Batch batch = batchService.selectOne(entityWrapper); + return ResponseData.success(200, "", batch != null ? batch.getBatchNumber() + 1 : 1); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java new file mode 100644 index 0000000..f463168 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java @@ -0,0 +1,102 @@ +package com.casic.missiles.modular.task.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * 任务控制器 + * + * @author dev + * @Date 2020-03-27 15:28:26 + */ +@Controller +@RequestMapping("/task") +public class TaskController extends BaseController { + + + @Autowired + private ITaskService taskService; + + + /** + * 获取任务列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return taskService.selectList(null); + } + + /** + * 获取任务分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = taskService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增任务 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + taskService.insert(task); + return ResponseData.success(); + } + + /** + * 删除任务 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String taskId) { + taskService.deleteById(taskId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("taskIds") List taskIds) { + taskService.deleteBatchIds(taskIds); + return ResponseData.success(); + } + + /** + * 修改任务 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + taskService.updateById(task); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java new file mode 100644 index 0000000..04c7ef8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.task.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IBatchService extends IService { + + /** + * 添加批次和生成设备 + * @param batches + * @param task + * @return + */ + ResponseData addBatchAndDevices(List batches, Task task); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java new file mode 100644 index 0000000..50e1d37 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.task.service; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface ITaskService extends IService { + +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java new file mode 100644 index 0000000..4670df3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 集中器相关日志 + */ +public class ProjectDict extends AbstractDictMap { + public static final String PROJECT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + @Override + public void init() { + put("projectName","项目名称"); + put("projectSimpleName","项目简称"); + put("projectManager","项目经理"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java new file mode 100644 index 0000000..7981a17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dto; + +/** + * 用于设备类型展示 + * @author test203 + * @date 2020-04-03 + */ +public class DeviceTypeDto { + private Long id; + private String productName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java new file mode 100644 index 0000000..f254585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java @@ -0,0 +1,361 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.math.BigDecimal; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; + +/** + *

+ * 管理员表 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@TableName("sys_user") +public class Account extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + /** + * 头像 + */ + private String avatar; + /** + * 账号 + */ + private String account; + /** + * 密码 + */ + private String password; + /** + * md5密码盐 + */ + private String salt; + /** + * 名字 + */ + private String name; + /** + * 生日 + */ + private Date birthday; + /** + * 性别(1:男 2:女) + */ + private String sex; + /** + * 电子邮件 + */ + private String email; + /** + * 电话 + */ + private String phone; + /** + * 角色id + */ + private String roleid; + /** + * 部门id + */ + private Long deptid; + /** + * 状态(1:启用 2:冻结 3:删除) + */ + private String status; + /** + * 创建时间 + */ + private Date createtime; + /** + * 保留字段 + */ + private Integer version; + private String targetid; + private String targetname; + @TableField("password_sync") + private String passwordSync; + @TableField("IS_SYNC") + private Integer isSync; + private String simplename; + /** + * 同步组织ID + */ + @TableField("TARGET_DEPTID_SYNC") + private String targetDeptidSync; + @TableField("LOGIN_IP") + private String loginIp; + @TableField("LOGIN_MAC") + private String loginMac; + /** + * 最后在线时间 + */ + @TableField("LAST_TIME") + private Date lastTime; + /** + * 经度 + */ + @TableField("POSITION_LNG") + private BigDecimal positionLng; + /** + * 纬度 + */ + @TableField("POSITION_LAT") + private BigDecimal positionLat; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt() { + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getRoleid() { + return roleid; + } + + public void setRoleid(String roleid) { + this.roleid = roleid; + } + + public Long getDeptid() { + return deptid; + } + + public void setDeptid(Long deptid) { + this.deptid = deptid; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + public String getTargetid() { + return targetid; + } + + public void setTargetid(String targetid) { + this.targetid = targetid; + } + + public String getTargetname() { + return targetname; + } + + public void setTargetname(String targetname) { + this.targetname = targetname; + } + + public String getPasswordSync() { + return passwordSync; + } + + public void setPasswordSync(String passwordSync) { + this.passwordSync = passwordSync; + } + + public Integer getIsSync() { + return isSync; + } + + public void setIsSync(Integer isSync) { + this.isSync = isSync; + } + + public String getSimplename() { + return simplename; + } + + public void setSimplename(String simplename) { + this.simplename = simplename; + } + + public String getTargetDeptidSync() { + return targetDeptidSync; + } + + public void setTargetDeptidSync(String targetDeptidSync) { + this.targetDeptidSync = targetDeptidSync; + } + + public String getLoginIp() { + return loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getLoginMac() { + return loginMac; + } + + public void setLoginMac(String loginMac) { + this.loginMac = loginMac; + } + + public Date getLastTime() { + return lastTime; + } + + public void setLastTime(Date lastTime) { + this.lastTime = lastTime; + } + + public BigDecimal getPositionLng() { + return positionLng; + } + + public void setPositionLng(BigDecimal positionLng) { + this.positionLng = positionLng; + } + + public BigDecimal getPositionLat() { + return positionLat; + } + + public void setPositionLat(BigDecimal positionLat) { + this.positionLat = positionLat; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", avatar=" + avatar + + ", account=" + account + + ", password=" + password + + ", salt=" + salt + + ", name=" + name + + ", birthday=" + birthday + + ", sex=" + sex + + ", email=" + email + + ", phone=" + phone + + ", roleid=" + roleid + + ", deptid=" + deptid + + ", status=" + status + + ", createtime=" + createtime + + ", version=" + version + + ", targetid=" + targetid + + ", targetname=" + targetname + + ", passwordSync=" + passwordSync + + ", isSync=" + isSync + + ", simplename=" + simplename + + ", targetDeptidSync=" + targetDeptidSync + + ", loginIp=" + loginIp + + ", loginMac=" + loginMac + + ", lastTime=" + lastTime + + ", positionLng=" + positionLng + + ", positionLat=" + positionLat + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java new file mode 100644 index 0000000..81516b7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -0,0 +1,110 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_batch") +public class Batch extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_number") + private Long batchNumber; + @TableField("batch_count") + private Long batchCount; + @TableField("contract_id") + private Long contractId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("task_id") + private Long taskId; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(Long batchNumber) { + this.batchNumber = batchNumber; + } + + public Long getBatchCount() { + return batchCount; + } + + public void setBatchCount(Long batchCount) { + this.batchCount = batchCount; + } + + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Batch{" + + "id=" + id + + ", batchNumber=" + batchNumber + + ", batchCount=" + batchCount + + ", contractId=" + contractId + + ", taskId=" + taskId + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java new file mode 100644 index 0000000..893a1ed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -0,0 +1,186 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_contract") +public class Contract extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("contract_number") + private String contractNumber; + @TableField("contract_name") + private String contractName; + @TableField("contract_content") + private String contractContent; + @TableField("contract_amount") + private String contractAmount; + @TableField("external_project_apply") + private String externalProjectApply; + @TableField("external_contract_apply") + private String externalContractApply; + @TableField("principal") + private String principal; + @TableField("external_check_apply") + private String externalCheckApply; + @TableField("contract_factory") + private String contractFactory; + @TableField("createtime") + private Date createtime; + @TableField(exist = false) + private String paymentStatus; + @TableField(exist = false) + private String netFlow; + @TableField("deptid") + private String deptid; + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getContractName() { + return contractName; + } + + public void setContractName(String contractName) { + this.contractName = contractName; + } + + public String getContractContent() { + return contractContent; + } + + public void setContractContent(String contractContent) { + this.contractContent = contractContent; + } + + public String getContractAmount() { + return contractAmount; + } + + public void setContractAmount(String contractAmount) { + this.contractAmount = contractAmount; + } + + public String getExternalProjectApply() { + return externalProjectApply; + } + + public void setExternalProjectApply(String externalProjectApply) { + this.externalProjectApply = externalProjectApply; + } + + public String getExternalContractApply() { + return externalContractApply; + } + + public void setExternalContractApply(String externalContractApply) { + this.externalContractApply = externalContractApply; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalCheckApply() { + return externalCheckApply; + } + + public void setExternalCheckApply(String externalCheckApply) { + this.externalCheckApply = externalCheckApply; + } + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public String getContractFactory() { + return contractFactory; + } + + public void setContractFactory(String contractFactory) { + this.contractFactory = contractFactory; + } + + public String getNetFlow() { + return netFlow; + } + + public void setNetFlow(String netFlow) { + this.netFlow = netFlow; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Contract{" + + "contractNumber=" + contractNumber + + ", contractName=" + contractName + + ", contractContent=" + contractContent + + ", contractAmount=" + contractAmount + + ", externalProjectApply=" + externalProjectApply + + ", externalContractApply=" + externalContractApply + + ", principal=" + principal + + ", id=" + id + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java new file mode 100644 index 0000000..8718d91 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -0,0 +1,150 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_device") +public class Device extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_id") + private Long batchId; + private String devcode; + @TableField("devtype_id") + private Long devtypeId; + @TableField("is_send") + private String isSend; + private String longitude; + private String latitude; + @TableField("install_height") + private String installHeight; + private String iccid; + private Long imei; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public Long getImei() { + return imei; + } + + public void setImei(Long imei) { + this.imei = imei; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Device{" + + "id=" + id + + ", batchId=" + batchId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", isSend=" + isSend + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", installHeight=" + installHeight + + ", iccid=" + iccid + + ", imei=" + imei + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java new file mode 100644 index 0000000..870c36f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_payments") +public class Payments extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @TableField("paytime") + private Date paytime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getPaytime() { + return paytime; + } + + public void setPaytime(Date paytime) { + this.paytime = paytime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Payments{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", paytime=" + paytime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java new file mode 100644 index 0000000..ae6b585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -0,0 +1,285 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_device_type") +public class ProductDeviceType extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 产品名称 + */ + @TableField("product_name") + private String productName; + /** + * 产品型号 + */ + @TableField("product_model") + private String productModel; + + /** + * 通讯版本号 + */ + @TableField("communication_version") + private String communicationVersion; + + /** + * 产品类型 + */ + @TableField("product_type") + private String productType; + + /** + * 整机版本号 + */ + @TableField("machine_version") + private String machineVersion; + /** + * 硬件版本号 + */ + @TableField("hardware_version") + private String hardwareVersion; + /** + * 软件版本号 + */ + @TableField("software_version") + private String softwareVersion; + /** + * 设计归档 + */ + @TableField("design_archive") + private String designArchive; + /** + * 批产归档 + */ + @TableField("batch_filing") + private String batchFiling; + /** + * 状态 + */ + @TableField("status") + private Integer status; + /** + * 性能指标 + */ + @TableField("kpi") + private String kpi; + /** + * 批产负责人 + */ + @TableField("principal") + private String principal; + /** + * 定额汇总表 + */ + @TableField("quota_summary") + private String quotaSummary; + + /** + * 权属部门 + */ + @TableField("deptid") + private String deptid; + + /** + * 备注 + */ + @TableField("descn") + private String descn; + + @TableField("createtime") + private Date createtime; + + + @TableField(exist = false) + private String statusFmt; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } + + public String getMachineVersion() { + return machineVersion; + } + + public void setMachineVersion(String machineVersion) { + this.machineVersion = machineVersion; + } + + public String getHardwareVersion() { + return hardwareVersion; + } + + public void setHardwareVersion(String hardwareVersion) { + this.hardwareVersion = hardwareVersion; + } + + public String getSoftwareVersion() { + return softwareVersion; + } + + public void setSoftwareVersion(String softwareVersion) { + this.softwareVersion = softwareVersion; + } + + public String getDesignArchive() { + return designArchive; + } + + public void setDesignArchive(String designArchive) { + this.designArchive = designArchive; + } + + public String getBatchFiling() { + return batchFiling; + } + + public void setBatchFiling(String batchFiling) { + this.batchFiling = batchFiling; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getKpi() { + return kpi; + } + + public void setKpi(String kpi) { + this.kpi = kpi; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public String getQuotaSummary() { + return quotaSummary; + } + + public void setQuotaSummary(String quotaSummary) { + this.quotaSummary = quotaSummary; + } + + public String getStatusFmt() { + return statusFmt; + } + + public void setStatusFmt(String statusFmt) { + this.statusFmt = statusFmt; + } + + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getProductType() { + return productType; + } + + public void setProductType(String productType) { + this.productType = productType; + } + + public String getCommunicationVersion() { + return communicationVersion; + } + + public void setCommunicationVersion(String communicationVersion) { + this.communicationVersion = communicationVersion; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductDeviceType{" + + "id=" + id + + ", productName=" + productName + + ", productModel=" + productModel + + ", machineVersion=" + machineVersion + + ", hardwareVersion=" + hardwareVersion + + ", softwareVersion=" + softwareVersion + + ", designArchive=" + designArchive + + ", batchFiling=" + batchFiling + + ", status=" + status + + ", kpi=" + kpi + + ", principal=" + principal + + ", quotaSummary=" + quotaSummary + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java new file mode 100644 index 0000000..b0fd924 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java @@ -0,0 +1,187 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_factory_information") +public class ProductFactoryInformation extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 厂家名称 + */ + @TableField("name") + private String name; + /** + * 厂家联系人 + */ + @TableField("person_name") + private String personName; + /** + * 地址 + */ + @TableField("address") + private String address; + /** + * 电话 + */ + @TableField("phone") + private String phone; + /** + * 开户行 + */ + @TableField("bank") + private String bank; + /** + * 税号 + */ + @TableField("tax_number") + private String taxNumber; + /** + * 在产设备 + */ + @TableField("producting_device") + private String productingDevice; + /** + * 设备报价表 + */ + @TableField("equipment_quotation") + private String equipmentQuotation; + + @TableField("createtime") + private Date createtime =new Date(); + + @TableField("deptid") + private String deptid; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPersonName() { + return personName; + } + + public void setPersonName(String personName) { + this.personName = personName; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getBank() { + return bank; + } + + public void setBank(String bank) { + this.bank = bank; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getProductingDevice() { + return productingDevice; + } + + public void setProductingDevice(String productingDevice) { + this.productingDevice = productingDevice; + } + + public String getEquipmentQuotation() { + return equipmentQuotation; + } + + public void setEquipmentQuotation(String equipmentQuotation) { + this.equipmentQuotation = equipmentQuotation; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductFactoryInformation{" + + "id=" + id + + ", name=" + name + + ", personName=" + personName + + ", address=" + address + + ", phone=" + phone + + ", bank=" + bank + + ", taxNumber=" + taxNumber + + ", productingDevice=" + productingDevice + + ", equipmentQuotation=" + equipmentQuotation + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java new file mode 100644 index 0000000..00cbc92 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -0,0 +1,99 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@TableName("product_project") +public class Project extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_name") + private String projectName; + @TableField("project_simple_name") + private String projectSimpleName; + @TableField("project_manager") + private String projectManager; + private String descn; + @TableField("createtime") + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getProjectManager() { + return projectManager; + } + + public void setProjectManager(String projectManager) { + this.projectManager = projectManager; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Project{" + + "id=" + id + + ", projectName=" + projectName + + ", projectSimpleName=" + projectSimpleName + + ", projectManager=" + projectManager + + ", descn=" + descn + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java new file mode 100644 index 0000000..658c2e1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java @@ -0,0 +1,126 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_reimburse") +public class Reimburse extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mi:ss") + @TableField("reimburse_time") + private Date reimburseTime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getReimburseTime() { + return reimburseTime; + } + + public void setReimburseTime(Date reimburseTime) { + this.reimburseTime = reimburseTime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Reimburse{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", reimburseTime=" + reimburseTime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java new file mode 100644 index 0000000..987efa7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java @@ -0,0 +1,141 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_task") +public class Task extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_id") + private Long projectId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("devmode_id") + private String devmodeId; + private Long devcount; + @TableField("delivery_time") + private Date deliveryTime; + private String demand; + private Date createtime; + @TableField(exist = false) + private String deliveryTimeFmt; + + @TableField(exist = false) + private Long taskId; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getProjectId() { + return projectId; + } + + public void setProjectId(Long projectId) { + this.projectId = projectId; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDevmodeId() { + return devmodeId; + } + + public void setDevmodeId(String devmodeId) { + this.devmodeId = devmodeId; + } + + public Long getDevcount() { + return devcount; + } + + public void setDevcount(Long devcount) { + this.devcount = devcount; + } + + public Date getDeliveryTime() { + return deliveryTime; + } + + public void setDeliveryTime(Date deliveryTime) { + this.deliveryTime = deliveryTime; + } + + public String getDemand() { + return demand; + } + + public void setDemand(String demand) { + this.demand = demand; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeliveryTimeFmt() { + return deliveryTimeFmt; + } + + public void setDeliveryTimeFmt(String deliveryTimeFmt) { + this.deliveryTimeFmt = deliveryTimeFmt; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Task{" + + "id=" + id + + ", projectId=" + projectId + + ", devtypeId=" + devtypeId + + ", devmodeId=" + devmodeId + + ", devcount=" + devcount + + ", deliveryTime=" + deliveryTime + + ", demand=" + demand + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java new file mode 100644 index 0000000..7785de5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface IAccountService extends IService { + + /** + * 根据用户名查用户 + * @param userName + * @return + */ + Account findUserByName(String userName); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java new file mode 100644 index 0000000..d8b5e87 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IContractService extends IService { + List selectPageList(Page page, String keyword1, String keyword2, String keyword3); + List reportExport(String keyword1, String keyword2, String keyword3); + void importContract( List contracts); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java new file mode 100644 index 0000000..0f2d6e0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IPaymentsService extends IService { + + boolean validate(Long proId,String money,String reorder); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java new file mode 100644 index 0000000..71490df --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -0,0 +1,62 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductDeviceTypeService extends IService { + + /** + * 批量导入设备类型列表 + * @param results + */ + void importDeviceType(List results); + + /** + * 导出列表 + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List reportExport(String keyword1,String keyword2,String keyword3); + + + /** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectPageDataScope(DataScope dataScope, Page page, + String keyword1, String keyword2, String keyword3); + + /** + * 获取在产的设备类型 + * @return + */ + List selectDeviceTypeList(); + + /** + * 根据产品型号获取产品 + * @param deviceModel + * @return + */ + ProductDeviceType selectDeviceTypeByModel(String deviceModel); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java new file mode 100644 index 0000000..455f60a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductFactoryInformationService extends IService { + /** + * 根据条件导出列表 + * @param keyword1 + * @param keyword2 + * @return + */ + List reportExport(String keyword1, String keyword2); + + + /** + * 导入 + * @param results + */ + void importDeviceType(List results); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java new file mode 100644 index 0000000..3c27bd1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface IProjectService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java new file mode 100644 index 0000000..ee0a55c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IReimburseService extends IService { + boolean validate(Long proId,String money,String reorder); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java new file mode 100644 index 0000000..09ce653 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.dao.AccountMapper; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.stereotype.Service; + +/** + *

+ * 管理员表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@Service +public class AccountServiceImpl extends ServiceImpl implements IAccountService { + + @Override + public Account findUserByName(String userName) { + + EntityWrapper userEntityWrapper = new EntityWrapper<>(); + userEntityWrapper.eq("name",userName); + userEntityWrapper.eq("status","1"); + return this.selectOne(userEntityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java new file mode 100644 index 0000000..dd04da0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java @@ -0,0 +1,138 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.shiro.ShiroUser; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ContractMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IPaymentsService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ContractServiceImpl extends ServiceImpl implements IContractService { + @Autowired + private IPaymentsService paymentsService; + @Autowired + private ICommonPermissionService permissionService; + @Autowired + private IAccountService userService; + @Value("${casic.producerName}") + private String producerName; + @Value("${casic.repairName}") + private String repairName; + + @Override + public List selectPageList(Page page, String keyword1, String keyword2, String keyword3) { + +// EntityWrapper query = new EntityWrapper<>(); +// if (ToolUtil.isNotEmpty(keyword1)) { +// query.like("contract_factory", keyword1); +// } +// if (ToolUtil.isNotEmpty(keyword3)) { +// query.like("contract_number", keyword3); +// } +// List contractList = this.selectPage(page, query).getRecords(); +// contractList.forEach(contract -> { +// contract.setPaymentStatus(getPaymentStatus(contract)); +// String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" +// + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" +// + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); +// contract.setNetFlow(netFlowStr); +// +// }); +// return contractList; + + + List contractList = new ArrayList<>(); + DataScope dataScope = permissionService.getCurrUserDataScope(); + ShiroUser currentUser = permissionService.getCurrLoginUser(); + if (currentUser.getRoleTips().contains(producerName) || currentUser.getRoleTips().contains(repairName)) { + contractList = this.baseMapper.findContractList(dataScope,page, currentUser.getName(), keyword1, keyword2, keyword3); + } else { + contractList = this.baseMapper.findContractList(dataScope,page, "", keyword1, keyword2, keyword3); + } + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + + }); + return contractList; + } + + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + + + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("contractFactory", keyword1); + } + if (ToolUtil.isNotEmpty(keyword3)) { + query.like("contract_number", keyword3); + } + + List contractList = this.selectList(query); + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); +// permissionService.findInDictByCode("applyStatus") + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + }); + + return contractList; + } + + @Override + public void importContract(List contracts) { + contracts.forEach(contract -> { + EntityWrapper query = new EntityWrapper<>(); + query.eq("contract_number", contract.getContractNumber()); + this.delete(query); + Account user = userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); + this.insert(contract); + }); + } + + public String getPaymentStatus(Contract contract) { + Map paraMap = new HashMap<>(); + paraMap.put("pro_id", contract.getId()); + List paymentsList = paymentsService.selectByMap(paraMap); + float sum = 0; + for (Payments payments : paymentsList) { + sum = sum + (ToolUtil.isNotEmpty(payments.getMoney()) ? Float.parseFloat(payments.getMoney()) : 0); + } + DecimalFormat df = new DecimalFormat("0"); + return sum + "," + df.format(100 * sum / Float.valueOf(contract.getContractAmount())) + "%"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java new file mode 100644 index 0000000..0c125d8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PaymentsMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class PaymentsServiceImpl extends ServiceImpl implements IPaymentsService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money,String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List paymentsList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Payments payments : paymentsList) { + if(reorder.equals(payments.getReorder())) continue; + total += ToolUtil.isNotEmpty(payments.getMoney()) ? + Long.valueOf(payments.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java new file mode 100644 index 0000000..ac6d447 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductDeviceTypeMapper; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.swing.text.html.parser.Entity; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductDeviceTypeServiceImpl extends ServiceImpl implements IProductDeviceTypeService { + + @Autowired + private ICommonPermissionService permissionService; + + @Transactional(rollbackFor = Exception.class) + @Override + public void importDeviceType(List results) { + + for (ProductDeviceType productDeviceType : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + this.baseMapper.delete(wrapper); + this.baseMapper.insert(productDeviceType); + } + } + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + wrapper.like("principal", keyword3); + } + List productDeviceTypes = this.selectList(wrapper); + for (ProductDeviceType productDeviceType : productDeviceTypes) { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + } + return productDeviceTypes; + } + + @Override + public List selectPageDataScope(DataScope dataScope, Page page, String keyword1, String keyword2, String keyword3) { + + List productDeviceTypeList = this.baseMapper.selectDataScopePage(dataScope, page, keyword1, keyword2, keyword3); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + return productDeviceTypeList; + + } + + @Override + public List selectDeviceTypeList() { + return this.baseMapper.selectDeviceTypeList(); + } + + + @Override + public ProductDeviceType selectDeviceTypeByModel(String deviceModel) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("product_model",deviceModel); + return this.selectOne(entityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java new file mode 100644 index 0000000..efe4410 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java @@ -0,0 +1,50 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductFactoryInformationMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductFactoryInformationServiceImpl extends ServiceImpl implements IProductFactoryInformationService { + + @Override + public List reportExport(String keyword1, String keyword2) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.like("producting_device", keyword2); + } + List productFactoryInformations = this.selectList(wrapper); + + return productFactoryInformations; + } + + + @Transactional(rollbackFor=Exception.class) + @Override + public void importDeviceType(List results) { + for (ProductFactoryInformation productFactoryInformation : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + delete(wrapper); + this.baseMapper.insert(productFactoryInformation); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java new file mode 100644 index 0000000..34655b0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.dao.ProjectMapper; +import com.casic.missiles.modular.system.service.IProjectService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@Service +public class ProjectServiceImpl extends ServiceImpl implements IProjectService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java new file mode 100644 index 0000000..5e8b77b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java @@ -0,0 +1,48 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.dao.ReimburseMapper; +import com.casic.missiles.modular.system.service.IReimburseService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ReimburseServiceImpl extends ServiceImpl implements IReimburseService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money, String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List reimburseList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Reimburse reimburse : reimburseList) { + if (reorder.equals(reimburse.getReorder())) continue; + total += ToolUtil.isNotEmpty(reimburse.getMoney()) ? + Long.valueOf(reimburse.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java new file mode 100644 index 0000000..d5ffadb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java @@ -0,0 +1,235 @@ +package com.casic.missiles.modular.system.util; + +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; + +import java.util.*; + +/** + * @author test203 + * @since 2020-04-06 + */ +public class DeviceUtil { + private final static String factoryCode = "20"; + private final static String wellExcludeCode = "4120"; + private final static String loraDevice = "A"; + private static Map devTypeCountHashMap = new HashMap(); + + static { + devTypeCountHashMap.put("电子标识器", 99999L); + devTypeCountHashMap.put("井盖状态监测仪", 65534L); + devTypeCountHashMap.put("灯箱控制器", 65535L); + devTypeCountHashMap.put("单灯控制器(单路)", 65535L); + devTypeCountHashMap.put("单灯控制器(双路)", 65535L); + devTypeCountHashMap.put("数据集中器", 255L); + devTypeCountHashMap.put("有害气体监测仪", 999L); + } + + public static List createDevCodes(ProductDeviceType deviceType, List batches) { + List deviceList = new ArrayList<>(); + try { + if ("电子标识器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 年份XX 批次号XX 编号XXXXX + String devCode = deviceType.getProductType() + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%05d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("井盖状态监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + String wellCode4 = String.format("%04x", i); + if (wellExcludeCode.equals(wellCode4)) { + continue; + } + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + wellCode4; + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("灯箱控制器".equals(deviceType.getProductName()) || + "单灯控制器(单路)".equals(deviceType.getProductName()) || + "单灯控制器(双路)".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("数据集中器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("有害气体监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型WS2000X- 年份XX 批次序号XXXX 编号XXX + String devCode = deviceType.getProductType() + + getYearFmt() + + String.format("%04d", batch.getBatchNumber()) + + String.format("%03d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } + //其他设备类型分lora和非lora版本 + else { + if (loraDevice.equals(deviceType.getCommunicationVersion())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } else { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return deviceList; + } + + + public static Map validate(ProductDeviceType deviceType, List batches, Task task) { + Map resultMap = new HashMap<>(); + boolean success = true; + String msg = ""; + long devSum = null != task ? task.getDevcount() : 0; + long devcount = 0, batchCountMax; + batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? + 0 : devTypeCountHashMap.get(deviceType.getProductName()); + if (0 == batchCountMax) { + if (deviceType.getProductModel().indexOf(loraDevice) + == deviceType.getProductModel().length() - 1) { + batchCountMax = 255; + } else { + batchCountMax = 9999; + } + } + for (Batch batch : batches) { + if (batch.getBatchCount() > batchCountMax) { + success = false; + msg = batch.getBatchNumber() + "批次号数量超过了最大范围" + batchCountMax; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + devcount += batch.getBatchCount(); + } + if (devcount != devSum) { + return returnMsg(); + } + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + + public static Map returnMsg() { + Map resultMap = new HashMap<>(); + resultMap.put("success", false); + resultMap.put("msg", "所有批次数量之和与任务中设备数量不一致!"); + return resultMap; + } + + /** + * 获取编码中的年份 + * + * @return + */ + public static String getYearFmt() { + + return DateUtil.format(new Date(), "yyyy").substring(2); + } + + + /** + * 比较2个map + * + * @param batchMap + * @param batchMap1 + * @return + */ + public static boolean equalMap(Map batchMap, Map batchMap1) { + if (batchMap.size() != batchMap1.size()) { + return false; + } + Iterator iter1 = batchMap.keySet().iterator(); + while (iter1.hasNext()) { + Long map1key = iter1.next(); + String map1value = batchMap.get(map1key).toString(); + String map2value = batchMap1.get(map1key).toString(); + if (!map1value.equals(map2value)) { + return false; + } + } + return true; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java new file mode 100644 index 0000000..33c3535 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java @@ -0,0 +1,43 @@ +package com.casic.missiles.modular.system.util; + +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; + +public class FileUtil { + public static File createFile(String path) throws IOException { + File file = new File(path); + if (!file.exists()) { + file.getParentFile().mkdirs(); + file.createNewFile(); + } + return file; + } + + + public static void downloadLocalFile(HttpServletResponse response,String path, String fileName) throws IOException { + File file = new File(path); + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", "attachment; filename=\"" + URLEncoder.encode(fileName, "UTF-8") + "\""); + response.setContentLength((int) file.length()); + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java new file mode 100644 index 0000000..341d3d1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.task.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.task.service.IBatchService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 批次控制器 + * + * @author dev + * @Date 2020-03-27 15:29:55 + */ +@Controller +@RequestMapping("/batch") +public class BatchController extends BaseController { + + + @Autowired + private IBatchService batchService; + + + /** + * 获取批次列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return batchService.selectList(null); + } + + /** + * 获取批次分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = batchService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增批次并生成设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + @Transactional + public Object add(@RequestBody List batches, Task task) { + + return batchService.addBatchAndDevices(batches,task); + + } + + /** + * 删除批次 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String batchId) { + batchService.deleteById(batchId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("batchIds") List batchIds) { + batchService.deleteBatchIds(batchIds); + return ResponseData.success(); + } + + /** + * 修改批次 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Batch batch) { + batchService.updateById(batch); + return ResponseData.success(); + } + + + /** + * 根据设备类型id + * 查找批次号 + */ + @RequestMapping(value = "/getBatchNumber") + @ResponseBody + public Object getBatchNumber(Long devtypeId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.orderBy("id", false); + Batch batch = batchService.selectOne(entityWrapper); + return ResponseData.success(200, "", batch != null ? batch.getBatchNumber() + 1 : 1); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java new file mode 100644 index 0000000..f463168 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java @@ -0,0 +1,102 @@ +package com.casic.missiles.modular.task.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * 任务控制器 + * + * @author dev + * @Date 2020-03-27 15:28:26 + */ +@Controller +@RequestMapping("/task") +public class TaskController extends BaseController { + + + @Autowired + private ITaskService taskService; + + + /** + * 获取任务列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return taskService.selectList(null); + } + + /** + * 获取任务分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = taskService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增任务 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + taskService.insert(task); + return ResponseData.success(); + } + + /** + * 删除任务 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String taskId) { + taskService.deleteById(taskId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("taskIds") List taskIds) { + taskService.deleteBatchIds(taskIds); + return ResponseData.success(); + } + + /** + * 修改任务 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + taskService.updateById(task); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java new file mode 100644 index 0000000..04c7ef8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.task.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IBatchService extends IService { + + /** + * 添加批次和生成设备 + * @param batches + * @param task + * @return + */ + ResponseData addBatchAndDevices(List batches, Task task); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java new file mode 100644 index 0000000..50e1d37 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.task.service; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface ITaskService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java new file mode 100644 index 0000000..a435e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dao.BatchMapper; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.DeviceUtil; +import com.casic.missiles.modular.task.service.IBatchService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class BatchServiceImpl extends ServiceImpl implements IBatchService { + + @Autowired + private IProductDeviceTypeService deviceTypeService; + @Autowired + private IDeviceService deviceService; + + @Transactional(rollbackFor=Exception.class) + @Override + public ResponseData addBatchAndDevices(List batches, Task task) { + //提交前先验证是否已经存在,若存在且批次号或每批数量改变先删除 + try { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("task_id", task.getTaskId()); + List batchList = this.selectList(entityWrapper); + Map batchMap= new HashMap<>(); + Map batchMap1= new HashMap<>(); + List batchIdlist = new ArrayList<>(); + for (Batch batch : batches) { + batchMap.put(batch.getBatchNumber(),batch.getBatchCount()); + batch.setTaskId(task.getTaskId()); + batch.setDevtypeId(task.getDevtypeId()); + batchIdlist.add(batch.getId()); + } + for (Batch batch : batchList) { + batchMap1.put(batch.getBatchNumber(),batch.getBatchCount()); + } + + //若批次号和数量不变只更新批次表 + if (DeviceUtil.equalMap(batchMap, batchMap1)) { + this.insertOrUpdateBatch(batches); + } + //若批次号和数量更新,更新设备表(删除批次相关的设备后,写入新的设备) + else { + + //验证设备数量是否合格 + ProductDeviceType deviceType = deviceTypeService.selectDeviceTypeByModel(task.getDevmodeId()); + Map resultMap = DeviceUtil.validate(deviceType, batches, task); + if (!Boolean.valueOf(resultMap.get("success").toString())) { + return ResponseData.error(400, resultMap.get("msg").toString()); + } + //删除批次 + EntityWrapper batchEntityWrapper = new EntityWrapper<>(); + batchEntityWrapper.eq("task_id", task.getTaskId()); + this.delete(batchEntityWrapper); + //删除设备 + EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); + deviceEntityWrapper.in("batch_id", batchIdlist); + deviceEntityWrapper.eq("devtype_id",task.getDevtypeId()); + deviceService.delete(deviceEntityWrapper); + + //写入批次 + this.insertBatch(batches); + //写入设备 + List deviceList = DeviceUtil.createDevCodes(deviceType, batches); + deviceService.insertBatch(deviceList); + } + } catch (Exception e) { + e.printStackTrace(); + } + return ResponseData.success(); + } + +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java new file mode 100644 index 0000000..4670df3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 集中器相关日志 + */ +public class ProjectDict extends AbstractDictMap { + public static final String PROJECT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + @Override + public void init() { + put("projectName","项目名称"); + put("projectSimpleName","项目简称"); + put("projectManager","项目经理"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java new file mode 100644 index 0000000..7981a17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dto; + +/** + * 用于设备类型展示 + * @author test203 + * @date 2020-04-03 + */ +public class DeviceTypeDto { + private Long id; + private String productName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java new file mode 100644 index 0000000..f254585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java @@ -0,0 +1,361 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.math.BigDecimal; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; + +/** + *

+ * 管理员表 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@TableName("sys_user") +public class Account extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + /** + * 头像 + */ + private String avatar; + /** + * 账号 + */ + private String account; + /** + * 密码 + */ + private String password; + /** + * md5密码盐 + */ + private String salt; + /** + * 名字 + */ + private String name; + /** + * 生日 + */ + private Date birthday; + /** + * 性别(1:男 2:女) + */ + private String sex; + /** + * 电子邮件 + */ + private String email; + /** + * 电话 + */ + private String phone; + /** + * 角色id + */ + private String roleid; + /** + * 部门id + */ + private Long deptid; + /** + * 状态(1:启用 2:冻结 3:删除) + */ + private String status; + /** + * 创建时间 + */ + private Date createtime; + /** + * 保留字段 + */ + private Integer version; + private String targetid; + private String targetname; + @TableField("password_sync") + private String passwordSync; + @TableField("IS_SYNC") + private Integer isSync; + private String simplename; + /** + * 同步组织ID + */ + @TableField("TARGET_DEPTID_SYNC") + private String targetDeptidSync; + @TableField("LOGIN_IP") + private String loginIp; + @TableField("LOGIN_MAC") + private String loginMac; + /** + * 最后在线时间 + */ + @TableField("LAST_TIME") + private Date lastTime; + /** + * 经度 + */ + @TableField("POSITION_LNG") + private BigDecimal positionLng; + /** + * 纬度 + */ + @TableField("POSITION_LAT") + private BigDecimal positionLat; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt() { + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getRoleid() { + return roleid; + } + + public void setRoleid(String roleid) { + this.roleid = roleid; + } + + public Long getDeptid() { + return deptid; + } + + public void setDeptid(Long deptid) { + this.deptid = deptid; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + public String getTargetid() { + return targetid; + } + + public void setTargetid(String targetid) { + this.targetid = targetid; + } + + public String getTargetname() { + return targetname; + } + + public void setTargetname(String targetname) { + this.targetname = targetname; + } + + public String getPasswordSync() { + return passwordSync; + } + + public void setPasswordSync(String passwordSync) { + this.passwordSync = passwordSync; + } + + public Integer getIsSync() { + return isSync; + } + + public void setIsSync(Integer isSync) { + this.isSync = isSync; + } + + public String getSimplename() { + return simplename; + } + + public void setSimplename(String simplename) { + this.simplename = simplename; + } + + public String getTargetDeptidSync() { + return targetDeptidSync; + } + + public void setTargetDeptidSync(String targetDeptidSync) { + this.targetDeptidSync = targetDeptidSync; + } + + public String getLoginIp() { + return loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getLoginMac() { + return loginMac; + } + + public void setLoginMac(String loginMac) { + this.loginMac = loginMac; + } + + public Date getLastTime() { + return lastTime; + } + + public void setLastTime(Date lastTime) { + this.lastTime = lastTime; + } + + public BigDecimal getPositionLng() { + return positionLng; + } + + public void setPositionLng(BigDecimal positionLng) { + this.positionLng = positionLng; + } + + public BigDecimal getPositionLat() { + return positionLat; + } + + public void setPositionLat(BigDecimal positionLat) { + this.positionLat = positionLat; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", avatar=" + avatar + + ", account=" + account + + ", password=" + password + + ", salt=" + salt + + ", name=" + name + + ", birthday=" + birthday + + ", sex=" + sex + + ", email=" + email + + ", phone=" + phone + + ", roleid=" + roleid + + ", deptid=" + deptid + + ", status=" + status + + ", createtime=" + createtime + + ", version=" + version + + ", targetid=" + targetid + + ", targetname=" + targetname + + ", passwordSync=" + passwordSync + + ", isSync=" + isSync + + ", simplename=" + simplename + + ", targetDeptidSync=" + targetDeptidSync + + ", loginIp=" + loginIp + + ", loginMac=" + loginMac + + ", lastTime=" + lastTime + + ", positionLng=" + positionLng + + ", positionLat=" + positionLat + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java new file mode 100644 index 0000000..81516b7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -0,0 +1,110 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_batch") +public class Batch extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_number") + private Long batchNumber; + @TableField("batch_count") + private Long batchCount; + @TableField("contract_id") + private Long contractId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("task_id") + private Long taskId; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(Long batchNumber) { + this.batchNumber = batchNumber; + } + + public Long getBatchCount() { + return batchCount; + } + + public void setBatchCount(Long batchCount) { + this.batchCount = batchCount; + } + + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Batch{" + + "id=" + id + + ", batchNumber=" + batchNumber + + ", batchCount=" + batchCount + + ", contractId=" + contractId + + ", taskId=" + taskId + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java new file mode 100644 index 0000000..893a1ed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -0,0 +1,186 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_contract") +public class Contract extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("contract_number") + private String contractNumber; + @TableField("contract_name") + private String contractName; + @TableField("contract_content") + private String contractContent; + @TableField("contract_amount") + private String contractAmount; + @TableField("external_project_apply") + private String externalProjectApply; + @TableField("external_contract_apply") + private String externalContractApply; + @TableField("principal") + private String principal; + @TableField("external_check_apply") + private String externalCheckApply; + @TableField("contract_factory") + private String contractFactory; + @TableField("createtime") + private Date createtime; + @TableField(exist = false) + private String paymentStatus; + @TableField(exist = false) + private String netFlow; + @TableField("deptid") + private String deptid; + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getContractName() { + return contractName; + } + + public void setContractName(String contractName) { + this.contractName = contractName; + } + + public String getContractContent() { + return contractContent; + } + + public void setContractContent(String contractContent) { + this.contractContent = contractContent; + } + + public String getContractAmount() { + return contractAmount; + } + + public void setContractAmount(String contractAmount) { + this.contractAmount = contractAmount; + } + + public String getExternalProjectApply() { + return externalProjectApply; + } + + public void setExternalProjectApply(String externalProjectApply) { + this.externalProjectApply = externalProjectApply; + } + + public String getExternalContractApply() { + return externalContractApply; + } + + public void setExternalContractApply(String externalContractApply) { + this.externalContractApply = externalContractApply; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalCheckApply() { + return externalCheckApply; + } + + public void setExternalCheckApply(String externalCheckApply) { + this.externalCheckApply = externalCheckApply; + } + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public String getContractFactory() { + return contractFactory; + } + + public void setContractFactory(String contractFactory) { + this.contractFactory = contractFactory; + } + + public String getNetFlow() { + return netFlow; + } + + public void setNetFlow(String netFlow) { + this.netFlow = netFlow; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Contract{" + + "contractNumber=" + contractNumber + + ", contractName=" + contractName + + ", contractContent=" + contractContent + + ", contractAmount=" + contractAmount + + ", externalProjectApply=" + externalProjectApply + + ", externalContractApply=" + externalContractApply + + ", principal=" + principal + + ", id=" + id + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java new file mode 100644 index 0000000..8718d91 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -0,0 +1,150 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_device") +public class Device extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_id") + private Long batchId; + private String devcode; + @TableField("devtype_id") + private Long devtypeId; + @TableField("is_send") + private String isSend; + private String longitude; + private String latitude; + @TableField("install_height") + private String installHeight; + private String iccid; + private Long imei; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public Long getImei() { + return imei; + } + + public void setImei(Long imei) { + this.imei = imei; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Device{" + + "id=" + id + + ", batchId=" + batchId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", isSend=" + isSend + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", installHeight=" + installHeight + + ", iccid=" + iccid + + ", imei=" + imei + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java new file mode 100644 index 0000000..870c36f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_payments") +public class Payments extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @TableField("paytime") + private Date paytime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getPaytime() { + return paytime; + } + + public void setPaytime(Date paytime) { + this.paytime = paytime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Payments{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", paytime=" + paytime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java new file mode 100644 index 0000000..ae6b585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -0,0 +1,285 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_device_type") +public class ProductDeviceType extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 产品名称 + */ + @TableField("product_name") + private String productName; + /** + * 产品型号 + */ + @TableField("product_model") + private String productModel; + + /** + * 通讯版本号 + */ + @TableField("communication_version") + private String communicationVersion; + + /** + * 产品类型 + */ + @TableField("product_type") + private String productType; + + /** + * 整机版本号 + */ + @TableField("machine_version") + private String machineVersion; + /** + * 硬件版本号 + */ + @TableField("hardware_version") + private String hardwareVersion; + /** + * 软件版本号 + */ + @TableField("software_version") + private String softwareVersion; + /** + * 设计归档 + */ + @TableField("design_archive") + private String designArchive; + /** + * 批产归档 + */ + @TableField("batch_filing") + private String batchFiling; + /** + * 状态 + */ + @TableField("status") + private Integer status; + /** + * 性能指标 + */ + @TableField("kpi") + private String kpi; + /** + * 批产负责人 + */ + @TableField("principal") + private String principal; + /** + * 定额汇总表 + */ + @TableField("quota_summary") + private String quotaSummary; + + /** + * 权属部门 + */ + @TableField("deptid") + private String deptid; + + /** + * 备注 + */ + @TableField("descn") + private String descn; + + @TableField("createtime") + private Date createtime; + + + @TableField(exist = false) + private String statusFmt; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } + + public String getMachineVersion() { + return machineVersion; + } + + public void setMachineVersion(String machineVersion) { + this.machineVersion = machineVersion; + } + + public String getHardwareVersion() { + return hardwareVersion; + } + + public void setHardwareVersion(String hardwareVersion) { + this.hardwareVersion = hardwareVersion; + } + + public String getSoftwareVersion() { + return softwareVersion; + } + + public void setSoftwareVersion(String softwareVersion) { + this.softwareVersion = softwareVersion; + } + + public String getDesignArchive() { + return designArchive; + } + + public void setDesignArchive(String designArchive) { + this.designArchive = designArchive; + } + + public String getBatchFiling() { + return batchFiling; + } + + public void setBatchFiling(String batchFiling) { + this.batchFiling = batchFiling; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getKpi() { + return kpi; + } + + public void setKpi(String kpi) { + this.kpi = kpi; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public String getQuotaSummary() { + return quotaSummary; + } + + public void setQuotaSummary(String quotaSummary) { + this.quotaSummary = quotaSummary; + } + + public String getStatusFmt() { + return statusFmt; + } + + public void setStatusFmt(String statusFmt) { + this.statusFmt = statusFmt; + } + + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getProductType() { + return productType; + } + + public void setProductType(String productType) { + this.productType = productType; + } + + public String getCommunicationVersion() { + return communicationVersion; + } + + public void setCommunicationVersion(String communicationVersion) { + this.communicationVersion = communicationVersion; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductDeviceType{" + + "id=" + id + + ", productName=" + productName + + ", productModel=" + productModel + + ", machineVersion=" + machineVersion + + ", hardwareVersion=" + hardwareVersion + + ", softwareVersion=" + softwareVersion + + ", designArchive=" + designArchive + + ", batchFiling=" + batchFiling + + ", status=" + status + + ", kpi=" + kpi + + ", principal=" + principal + + ", quotaSummary=" + quotaSummary + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java new file mode 100644 index 0000000..b0fd924 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java @@ -0,0 +1,187 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_factory_information") +public class ProductFactoryInformation extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 厂家名称 + */ + @TableField("name") + private String name; + /** + * 厂家联系人 + */ + @TableField("person_name") + private String personName; + /** + * 地址 + */ + @TableField("address") + private String address; + /** + * 电话 + */ + @TableField("phone") + private String phone; + /** + * 开户行 + */ + @TableField("bank") + private String bank; + /** + * 税号 + */ + @TableField("tax_number") + private String taxNumber; + /** + * 在产设备 + */ + @TableField("producting_device") + private String productingDevice; + /** + * 设备报价表 + */ + @TableField("equipment_quotation") + private String equipmentQuotation; + + @TableField("createtime") + private Date createtime =new Date(); + + @TableField("deptid") + private String deptid; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPersonName() { + return personName; + } + + public void setPersonName(String personName) { + this.personName = personName; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getBank() { + return bank; + } + + public void setBank(String bank) { + this.bank = bank; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getProductingDevice() { + return productingDevice; + } + + public void setProductingDevice(String productingDevice) { + this.productingDevice = productingDevice; + } + + public String getEquipmentQuotation() { + return equipmentQuotation; + } + + public void setEquipmentQuotation(String equipmentQuotation) { + this.equipmentQuotation = equipmentQuotation; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductFactoryInformation{" + + "id=" + id + + ", name=" + name + + ", personName=" + personName + + ", address=" + address + + ", phone=" + phone + + ", bank=" + bank + + ", taxNumber=" + taxNumber + + ", productingDevice=" + productingDevice + + ", equipmentQuotation=" + equipmentQuotation + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java new file mode 100644 index 0000000..00cbc92 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -0,0 +1,99 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@TableName("product_project") +public class Project extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_name") + private String projectName; + @TableField("project_simple_name") + private String projectSimpleName; + @TableField("project_manager") + private String projectManager; + private String descn; + @TableField("createtime") + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getProjectManager() { + return projectManager; + } + + public void setProjectManager(String projectManager) { + this.projectManager = projectManager; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Project{" + + "id=" + id + + ", projectName=" + projectName + + ", projectSimpleName=" + projectSimpleName + + ", projectManager=" + projectManager + + ", descn=" + descn + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java new file mode 100644 index 0000000..658c2e1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java @@ -0,0 +1,126 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_reimburse") +public class Reimburse extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mi:ss") + @TableField("reimburse_time") + private Date reimburseTime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getReimburseTime() { + return reimburseTime; + } + + public void setReimburseTime(Date reimburseTime) { + this.reimburseTime = reimburseTime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Reimburse{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", reimburseTime=" + reimburseTime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java new file mode 100644 index 0000000..987efa7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java @@ -0,0 +1,141 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_task") +public class Task extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_id") + private Long projectId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("devmode_id") + private String devmodeId; + private Long devcount; + @TableField("delivery_time") + private Date deliveryTime; + private String demand; + private Date createtime; + @TableField(exist = false) + private String deliveryTimeFmt; + + @TableField(exist = false) + private Long taskId; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getProjectId() { + return projectId; + } + + public void setProjectId(Long projectId) { + this.projectId = projectId; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDevmodeId() { + return devmodeId; + } + + public void setDevmodeId(String devmodeId) { + this.devmodeId = devmodeId; + } + + public Long getDevcount() { + return devcount; + } + + public void setDevcount(Long devcount) { + this.devcount = devcount; + } + + public Date getDeliveryTime() { + return deliveryTime; + } + + public void setDeliveryTime(Date deliveryTime) { + this.deliveryTime = deliveryTime; + } + + public String getDemand() { + return demand; + } + + public void setDemand(String demand) { + this.demand = demand; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeliveryTimeFmt() { + return deliveryTimeFmt; + } + + public void setDeliveryTimeFmt(String deliveryTimeFmt) { + this.deliveryTimeFmt = deliveryTimeFmt; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Task{" + + "id=" + id + + ", projectId=" + projectId + + ", devtypeId=" + devtypeId + + ", devmodeId=" + devmodeId + + ", devcount=" + devcount + + ", deliveryTime=" + deliveryTime + + ", demand=" + demand + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java new file mode 100644 index 0000000..7785de5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface IAccountService extends IService { + + /** + * 根据用户名查用户 + * @param userName + * @return + */ + Account findUserByName(String userName); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java new file mode 100644 index 0000000..d8b5e87 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IContractService extends IService { + List selectPageList(Page page, String keyword1, String keyword2, String keyword3); + List reportExport(String keyword1, String keyword2, String keyword3); + void importContract( List contracts); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java new file mode 100644 index 0000000..0f2d6e0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IPaymentsService extends IService { + + boolean validate(Long proId,String money,String reorder); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java new file mode 100644 index 0000000..71490df --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -0,0 +1,62 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductDeviceTypeService extends IService { + + /** + * 批量导入设备类型列表 + * @param results + */ + void importDeviceType(List results); + + /** + * 导出列表 + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List reportExport(String keyword1,String keyword2,String keyword3); + + + /** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectPageDataScope(DataScope dataScope, Page page, + String keyword1, String keyword2, String keyword3); + + /** + * 获取在产的设备类型 + * @return + */ + List selectDeviceTypeList(); + + /** + * 根据产品型号获取产品 + * @param deviceModel + * @return + */ + ProductDeviceType selectDeviceTypeByModel(String deviceModel); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java new file mode 100644 index 0000000..455f60a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductFactoryInformationService extends IService { + /** + * 根据条件导出列表 + * @param keyword1 + * @param keyword2 + * @return + */ + List reportExport(String keyword1, String keyword2); + + + /** + * 导入 + * @param results + */ + void importDeviceType(List results); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java new file mode 100644 index 0000000..3c27bd1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface IProjectService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java new file mode 100644 index 0000000..ee0a55c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IReimburseService extends IService { + boolean validate(Long proId,String money,String reorder); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java new file mode 100644 index 0000000..09ce653 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.dao.AccountMapper; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.stereotype.Service; + +/** + *

+ * 管理员表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@Service +public class AccountServiceImpl extends ServiceImpl implements IAccountService { + + @Override + public Account findUserByName(String userName) { + + EntityWrapper userEntityWrapper = new EntityWrapper<>(); + userEntityWrapper.eq("name",userName); + userEntityWrapper.eq("status","1"); + return this.selectOne(userEntityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java new file mode 100644 index 0000000..dd04da0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java @@ -0,0 +1,138 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.shiro.ShiroUser; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ContractMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IPaymentsService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ContractServiceImpl extends ServiceImpl implements IContractService { + @Autowired + private IPaymentsService paymentsService; + @Autowired + private ICommonPermissionService permissionService; + @Autowired + private IAccountService userService; + @Value("${casic.producerName}") + private String producerName; + @Value("${casic.repairName}") + private String repairName; + + @Override + public List selectPageList(Page page, String keyword1, String keyword2, String keyword3) { + +// EntityWrapper query = new EntityWrapper<>(); +// if (ToolUtil.isNotEmpty(keyword1)) { +// query.like("contract_factory", keyword1); +// } +// if (ToolUtil.isNotEmpty(keyword3)) { +// query.like("contract_number", keyword3); +// } +// List contractList = this.selectPage(page, query).getRecords(); +// contractList.forEach(contract -> { +// contract.setPaymentStatus(getPaymentStatus(contract)); +// String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" +// + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" +// + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); +// contract.setNetFlow(netFlowStr); +// +// }); +// return contractList; + + + List contractList = new ArrayList<>(); + DataScope dataScope = permissionService.getCurrUserDataScope(); + ShiroUser currentUser = permissionService.getCurrLoginUser(); + if (currentUser.getRoleTips().contains(producerName) || currentUser.getRoleTips().contains(repairName)) { + contractList = this.baseMapper.findContractList(dataScope,page, currentUser.getName(), keyword1, keyword2, keyword3); + } else { + contractList = this.baseMapper.findContractList(dataScope,page, "", keyword1, keyword2, keyword3); + } + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + + }); + return contractList; + } + + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + + + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("contractFactory", keyword1); + } + if (ToolUtil.isNotEmpty(keyword3)) { + query.like("contract_number", keyword3); + } + + List contractList = this.selectList(query); + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); +// permissionService.findInDictByCode("applyStatus") + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + }); + + return contractList; + } + + @Override + public void importContract(List contracts) { + contracts.forEach(contract -> { + EntityWrapper query = new EntityWrapper<>(); + query.eq("contract_number", contract.getContractNumber()); + this.delete(query); + Account user = userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); + this.insert(contract); + }); + } + + public String getPaymentStatus(Contract contract) { + Map paraMap = new HashMap<>(); + paraMap.put("pro_id", contract.getId()); + List paymentsList = paymentsService.selectByMap(paraMap); + float sum = 0; + for (Payments payments : paymentsList) { + sum = sum + (ToolUtil.isNotEmpty(payments.getMoney()) ? Float.parseFloat(payments.getMoney()) : 0); + } + DecimalFormat df = new DecimalFormat("0"); + return sum + "," + df.format(100 * sum / Float.valueOf(contract.getContractAmount())) + "%"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java new file mode 100644 index 0000000..0c125d8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PaymentsMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class PaymentsServiceImpl extends ServiceImpl implements IPaymentsService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money,String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List paymentsList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Payments payments : paymentsList) { + if(reorder.equals(payments.getReorder())) continue; + total += ToolUtil.isNotEmpty(payments.getMoney()) ? + Long.valueOf(payments.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java new file mode 100644 index 0000000..ac6d447 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductDeviceTypeMapper; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.swing.text.html.parser.Entity; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductDeviceTypeServiceImpl extends ServiceImpl implements IProductDeviceTypeService { + + @Autowired + private ICommonPermissionService permissionService; + + @Transactional(rollbackFor = Exception.class) + @Override + public void importDeviceType(List results) { + + for (ProductDeviceType productDeviceType : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + this.baseMapper.delete(wrapper); + this.baseMapper.insert(productDeviceType); + } + } + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + wrapper.like("principal", keyword3); + } + List productDeviceTypes = this.selectList(wrapper); + for (ProductDeviceType productDeviceType : productDeviceTypes) { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + } + return productDeviceTypes; + } + + @Override + public List selectPageDataScope(DataScope dataScope, Page page, String keyword1, String keyword2, String keyword3) { + + List productDeviceTypeList = this.baseMapper.selectDataScopePage(dataScope, page, keyword1, keyword2, keyword3); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + return productDeviceTypeList; + + } + + @Override + public List selectDeviceTypeList() { + return this.baseMapper.selectDeviceTypeList(); + } + + + @Override + public ProductDeviceType selectDeviceTypeByModel(String deviceModel) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("product_model",deviceModel); + return this.selectOne(entityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java new file mode 100644 index 0000000..efe4410 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java @@ -0,0 +1,50 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductFactoryInformationMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductFactoryInformationServiceImpl extends ServiceImpl implements IProductFactoryInformationService { + + @Override + public List reportExport(String keyword1, String keyword2) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.like("producting_device", keyword2); + } + List productFactoryInformations = this.selectList(wrapper); + + return productFactoryInformations; + } + + + @Transactional(rollbackFor=Exception.class) + @Override + public void importDeviceType(List results) { + for (ProductFactoryInformation productFactoryInformation : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + delete(wrapper); + this.baseMapper.insert(productFactoryInformation); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java new file mode 100644 index 0000000..34655b0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.dao.ProjectMapper; +import com.casic.missiles.modular.system.service.IProjectService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@Service +public class ProjectServiceImpl extends ServiceImpl implements IProjectService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java new file mode 100644 index 0000000..5e8b77b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java @@ -0,0 +1,48 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.dao.ReimburseMapper; +import com.casic.missiles.modular.system.service.IReimburseService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ReimburseServiceImpl extends ServiceImpl implements IReimburseService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money, String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List reimburseList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Reimburse reimburse : reimburseList) { + if (reorder.equals(reimburse.getReorder())) continue; + total += ToolUtil.isNotEmpty(reimburse.getMoney()) ? + Long.valueOf(reimburse.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java new file mode 100644 index 0000000..d5ffadb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java @@ -0,0 +1,235 @@ +package com.casic.missiles.modular.system.util; + +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; + +import java.util.*; + +/** + * @author test203 + * @since 2020-04-06 + */ +public class DeviceUtil { + private final static String factoryCode = "20"; + private final static String wellExcludeCode = "4120"; + private final static String loraDevice = "A"; + private static Map devTypeCountHashMap = new HashMap(); + + static { + devTypeCountHashMap.put("电子标识器", 99999L); + devTypeCountHashMap.put("井盖状态监测仪", 65534L); + devTypeCountHashMap.put("灯箱控制器", 65535L); + devTypeCountHashMap.put("单灯控制器(单路)", 65535L); + devTypeCountHashMap.put("单灯控制器(双路)", 65535L); + devTypeCountHashMap.put("数据集中器", 255L); + devTypeCountHashMap.put("有害气体监测仪", 999L); + } + + public static List createDevCodes(ProductDeviceType deviceType, List batches) { + List deviceList = new ArrayList<>(); + try { + if ("电子标识器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 年份XX 批次号XX 编号XXXXX + String devCode = deviceType.getProductType() + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%05d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("井盖状态监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + String wellCode4 = String.format("%04x", i); + if (wellExcludeCode.equals(wellCode4)) { + continue; + } + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + wellCode4; + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("灯箱控制器".equals(deviceType.getProductName()) || + "单灯控制器(单路)".equals(deviceType.getProductName()) || + "单灯控制器(双路)".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("数据集中器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("有害气体监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型WS2000X- 年份XX 批次序号XXXX 编号XXX + String devCode = deviceType.getProductType() + + getYearFmt() + + String.format("%04d", batch.getBatchNumber()) + + String.format("%03d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } + //其他设备类型分lora和非lora版本 + else { + if (loraDevice.equals(deviceType.getCommunicationVersion())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } else { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return deviceList; + } + + + public static Map validate(ProductDeviceType deviceType, List batches, Task task) { + Map resultMap = new HashMap<>(); + boolean success = true; + String msg = ""; + long devSum = null != task ? task.getDevcount() : 0; + long devcount = 0, batchCountMax; + batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? + 0 : devTypeCountHashMap.get(deviceType.getProductName()); + if (0 == batchCountMax) { + if (deviceType.getProductModel().indexOf(loraDevice) + == deviceType.getProductModel().length() - 1) { + batchCountMax = 255; + } else { + batchCountMax = 9999; + } + } + for (Batch batch : batches) { + if (batch.getBatchCount() > batchCountMax) { + success = false; + msg = batch.getBatchNumber() + "批次号数量超过了最大范围" + batchCountMax; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + devcount += batch.getBatchCount(); + } + if (devcount != devSum) { + return returnMsg(); + } + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + + public static Map returnMsg() { + Map resultMap = new HashMap<>(); + resultMap.put("success", false); + resultMap.put("msg", "所有批次数量之和与任务中设备数量不一致!"); + return resultMap; + } + + /** + * 获取编码中的年份 + * + * @return + */ + public static String getYearFmt() { + + return DateUtil.format(new Date(), "yyyy").substring(2); + } + + + /** + * 比较2个map + * + * @param batchMap + * @param batchMap1 + * @return + */ + public static boolean equalMap(Map batchMap, Map batchMap1) { + if (batchMap.size() != batchMap1.size()) { + return false; + } + Iterator iter1 = batchMap.keySet().iterator(); + while (iter1.hasNext()) { + Long map1key = iter1.next(); + String map1value = batchMap.get(map1key).toString(); + String map2value = batchMap1.get(map1key).toString(); + if (!map1value.equals(map2value)) { + return false; + } + } + return true; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java new file mode 100644 index 0000000..33c3535 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java @@ -0,0 +1,43 @@ +package com.casic.missiles.modular.system.util; + +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; + +public class FileUtil { + public static File createFile(String path) throws IOException { + File file = new File(path); + if (!file.exists()) { + file.getParentFile().mkdirs(); + file.createNewFile(); + } + return file; + } + + + public static void downloadLocalFile(HttpServletResponse response,String path, String fileName) throws IOException { + File file = new File(path); + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", "attachment; filename=\"" + URLEncoder.encode(fileName, "UTF-8") + "\""); + response.setContentLength((int) file.length()); + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java new file mode 100644 index 0000000..341d3d1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.task.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.task.service.IBatchService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 批次控制器 + * + * @author dev + * @Date 2020-03-27 15:29:55 + */ +@Controller +@RequestMapping("/batch") +public class BatchController extends BaseController { + + + @Autowired + private IBatchService batchService; + + + /** + * 获取批次列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return batchService.selectList(null); + } + + /** + * 获取批次分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = batchService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增批次并生成设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + @Transactional + public Object add(@RequestBody List batches, Task task) { + + return batchService.addBatchAndDevices(batches,task); + + } + + /** + * 删除批次 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String batchId) { + batchService.deleteById(batchId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("batchIds") List batchIds) { + batchService.deleteBatchIds(batchIds); + return ResponseData.success(); + } + + /** + * 修改批次 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Batch batch) { + batchService.updateById(batch); + return ResponseData.success(); + } + + + /** + * 根据设备类型id + * 查找批次号 + */ + @RequestMapping(value = "/getBatchNumber") + @ResponseBody + public Object getBatchNumber(Long devtypeId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.orderBy("id", false); + Batch batch = batchService.selectOne(entityWrapper); + return ResponseData.success(200, "", batch != null ? batch.getBatchNumber() + 1 : 1); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java new file mode 100644 index 0000000..f463168 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java @@ -0,0 +1,102 @@ +package com.casic.missiles.modular.task.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * 任务控制器 + * + * @author dev + * @Date 2020-03-27 15:28:26 + */ +@Controller +@RequestMapping("/task") +public class TaskController extends BaseController { + + + @Autowired + private ITaskService taskService; + + + /** + * 获取任务列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return taskService.selectList(null); + } + + /** + * 获取任务分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = taskService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增任务 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + taskService.insert(task); + return ResponseData.success(); + } + + /** + * 删除任务 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String taskId) { + taskService.deleteById(taskId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("taskIds") List taskIds) { + taskService.deleteBatchIds(taskIds); + return ResponseData.success(); + } + + /** + * 修改任务 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + taskService.updateById(task); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java new file mode 100644 index 0000000..04c7ef8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.task.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IBatchService extends IService { + + /** + * 添加批次和生成设备 + * @param batches + * @param task + * @return + */ + ResponseData addBatchAndDevices(List batches, Task task); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java new file mode 100644 index 0000000..50e1d37 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.task.service; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface ITaskService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java new file mode 100644 index 0000000..a435e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dao.BatchMapper; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.DeviceUtil; +import com.casic.missiles.modular.task.service.IBatchService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class BatchServiceImpl extends ServiceImpl implements IBatchService { + + @Autowired + private IProductDeviceTypeService deviceTypeService; + @Autowired + private IDeviceService deviceService; + + @Transactional(rollbackFor=Exception.class) + @Override + public ResponseData addBatchAndDevices(List batches, Task task) { + //提交前先验证是否已经存在,若存在且批次号或每批数量改变先删除 + try { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("task_id", task.getTaskId()); + List batchList = this.selectList(entityWrapper); + Map batchMap= new HashMap<>(); + Map batchMap1= new HashMap<>(); + List batchIdlist = new ArrayList<>(); + for (Batch batch : batches) { + batchMap.put(batch.getBatchNumber(),batch.getBatchCount()); + batch.setTaskId(task.getTaskId()); + batch.setDevtypeId(task.getDevtypeId()); + batchIdlist.add(batch.getId()); + } + for (Batch batch : batchList) { + batchMap1.put(batch.getBatchNumber(),batch.getBatchCount()); + } + + //若批次号和数量不变只更新批次表 + if (DeviceUtil.equalMap(batchMap, batchMap1)) { + this.insertOrUpdateBatch(batches); + } + //若批次号和数量更新,更新设备表(删除批次相关的设备后,写入新的设备) + else { + + //验证设备数量是否合格 + ProductDeviceType deviceType = deviceTypeService.selectDeviceTypeByModel(task.getDevmodeId()); + Map resultMap = DeviceUtil.validate(deviceType, batches, task); + if (!Boolean.valueOf(resultMap.get("success").toString())) { + return ResponseData.error(400, resultMap.get("msg").toString()); + } + //删除批次 + EntityWrapper batchEntityWrapper = new EntityWrapper<>(); + batchEntityWrapper.eq("task_id", task.getTaskId()); + this.delete(batchEntityWrapper); + //删除设备 + EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); + deviceEntityWrapper.in("batch_id", batchIdlist); + deviceEntityWrapper.eq("devtype_id",task.getDevtypeId()); + deviceService.delete(deviceEntityWrapper); + + //写入批次 + this.insertBatch(batches); + //写入设备 + List deviceList = DeviceUtil.createDevCodes(deviceType, batches); + deviceService.insertBatch(deviceList); + } + } catch (Exception e) { + e.printStackTrace(); + } + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java new file mode 100644 index 0000000..fac60bb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.dao.TaskMapper; +import com.casic.missiles.modular.task.service.ITaskService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class TaskServiceImpl extends ServiceImpl implements ITaskService { + +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java new file mode 100644 index 0000000..4670df3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 集中器相关日志 + */ +public class ProjectDict extends AbstractDictMap { + public static final String PROJECT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + @Override + public void init() { + put("projectName","项目名称"); + put("projectSimpleName","项目简称"); + put("projectManager","项目经理"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java new file mode 100644 index 0000000..7981a17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dto; + +/** + * 用于设备类型展示 + * @author test203 + * @date 2020-04-03 + */ +public class DeviceTypeDto { + private Long id; + private String productName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java new file mode 100644 index 0000000..f254585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java @@ -0,0 +1,361 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.math.BigDecimal; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; + +/** + *

+ * 管理员表 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@TableName("sys_user") +public class Account extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + /** + * 头像 + */ + private String avatar; + /** + * 账号 + */ + private String account; + /** + * 密码 + */ + private String password; + /** + * md5密码盐 + */ + private String salt; + /** + * 名字 + */ + private String name; + /** + * 生日 + */ + private Date birthday; + /** + * 性别(1:男 2:女) + */ + private String sex; + /** + * 电子邮件 + */ + private String email; + /** + * 电话 + */ + private String phone; + /** + * 角色id + */ + private String roleid; + /** + * 部门id + */ + private Long deptid; + /** + * 状态(1:启用 2:冻结 3:删除) + */ + private String status; + /** + * 创建时间 + */ + private Date createtime; + /** + * 保留字段 + */ + private Integer version; + private String targetid; + private String targetname; + @TableField("password_sync") + private String passwordSync; + @TableField("IS_SYNC") + private Integer isSync; + private String simplename; + /** + * 同步组织ID + */ + @TableField("TARGET_DEPTID_SYNC") + private String targetDeptidSync; + @TableField("LOGIN_IP") + private String loginIp; + @TableField("LOGIN_MAC") + private String loginMac; + /** + * 最后在线时间 + */ + @TableField("LAST_TIME") + private Date lastTime; + /** + * 经度 + */ + @TableField("POSITION_LNG") + private BigDecimal positionLng; + /** + * 纬度 + */ + @TableField("POSITION_LAT") + private BigDecimal positionLat; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt() { + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getRoleid() { + return roleid; + } + + public void setRoleid(String roleid) { + this.roleid = roleid; + } + + public Long getDeptid() { + return deptid; + } + + public void setDeptid(Long deptid) { + this.deptid = deptid; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + public String getTargetid() { + return targetid; + } + + public void setTargetid(String targetid) { + this.targetid = targetid; + } + + public String getTargetname() { + return targetname; + } + + public void setTargetname(String targetname) { + this.targetname = targetname; + } + + public String getPasswordSync() { + return passwordSync; + } + + public void setPasswordSync(String passwordSync) { + this.passwordSync = passwordSync; + } + + public Integer getIsSync() { + return isSync; + } + + public void setIsSync(Integer isSync) { + this.isSync = isSync; + } + + public String getSimplename() { + return simplename; + } + + public void setSimplename(String simplename) { + this.simplename = simplename; + } + + public String getTargetDeptidSync() { + return targetDeptidSync; + } + + public void setTargetDeptidSync(String targetDeptidSync) { + this.targetDeptidSync = targetDeptidSync; + } + + public String getLoginIp() { + return loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getLoginMac() { + return loginMac; + } + + public void setLoginMac(String loginMac) { + this.loginMac = loginMac; + } + + public Date getLastTime() { + return lastTime; + } + + public void setLastTime(Date lastTime) { + this.lastTime = lastTime; + } + + public BigDecimal getPositionLng() { + return positionLng; + } + + public void setPositionLng(BigDecimal positionLng) { + this.positionLng = positionLng; + } + + public BigDecimal getPositionLat() { + return positionLat; + } + + public void setPositionLat(BigDecimal positionLat) { + this.positionLat = positionLat; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", avatar=" + avatar + + ", account=" + account + + ", password=" + password + + ", salt=" + salt + + ", name=" + name + + ", birthday=" + birthday + + ", sex=" + sex + + ", email=" + email + + ", phone=" + phone + + ", roleid=" + roleid + + ", deptid=" + deptid + + ", status=" + status + + ", createtime=" + createtime + + ", version=" + version + + ", targetid=" + targetid + + ", targetname=" + targetname + + ", passwordSync=" + passwordSync + + ", isSync=" + isSync + + ", simplename=" + simplename + + ", targetDeptidSync=" + targetDeptidSync + + ", loginIp=" + loginIp + + ", loginMac=" + loginMac + + ", lastTime=" + lastTime + + ", positionLng=" + positionLng + + ", positionLat=" + positionLat + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java new file mode 100644 index 0000000..81516b7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -0,0 +1,110 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_batch") +public class Batch extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_number") + private Long batchNumber; + @TableField("batch_count") + private Long batchCount; + @TableField("contract_id") + private Long contractId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("task_id") + private Long taskId; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(Long batchNumber) { + this.batchNumber = batchNumber; + } + + public Long getBatchCount() { + return batchCount; + } + + public void setBatchCount(Long batchCount) { + this.batchCount = batchCount; + } + + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Batch{" + + "id=" + id + + ", batchNumber=" + batchNumber + + ", batchCount=" + batchCount + + ", contractId=" + contractId + + ", taskId=" + taskId + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java new file mode 100644 index 0000000..893a1ed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -0,0 +1,186 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_contract") +public class Contract extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("contract_number") + private String contractNumber; + @TableField("contract_name") + private String contractName; + @TableField("contract_content") + private String contractContent; + @TableField("contract_amount") + private String contractAmount; + @TableField("external_project_apply") + private String externalProjectApply; + @TableField("external_contract_apply") + private String externalContractApply; + @TableField("principal") + private String principal; + @TableField("external_check_apply") + private String externalCheckApply; + @TableField("contract_factory") + private String contractFactory; + @TableField("createtime") + private Date createtime; + @TableField(exist = false) + private String paymentStatus; + @TableField(exist = false) + private String netFlow; + @TableField("deptid") + private String deptid; + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getContractName() { + return contractName; + } + + public void setContractName(String contractName) { + this.contractName = contractName; + } + + public String getContractContent() { + return contractContent; + } + + public void setContractContent(String contractContent) { + this.contractContent = contractContent; + } + + public String getContractAmount() { + return contractAmount; + } + + public void setContractAmount(String contractAmount) { + this.contractAmount = contractAmount; + } + + public String getExternalProjectApply() { + return externalProjectApply; + } + + public void setExternalProjectApply(String externalProjectApply) { + this.externalProjectApply = externalProjectApply; + } + + public String getExternalContractApply() { + return externalContractApply; + } + + public void setExternalContractApply(String externalContractApply) { + this.externalContractApply = externalContractApply; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalCheckApply() { + return externalCheckApply; + } + + public void setExternalCheckApply(String externalCheckApply) { + this.externalCheckApply = externalCheckApply; + } + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public String getContractFactory() { + return contractFactory; + } + + public void setContractFactory(String contractFactory) { + this.contractFactory = contractFactory; + } + + public String getNetFlow() { + return netFlow; + } + + public void setNetFlow(String netFlow) { + this.netFlow = netFlow; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Contract{" + + "contractNumber=" + contractNumber + + ", contractName=" + contractName + + ", contractContent=" + contractContent + + ", contractAmount=" + contractAmount + + ", externalProjectApply=" + externalProjectApply + + ", externalContractApply=" + externalContractApply + + ", principal=" + principal + + ", id=" + id + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java new file mode 100644 index 0000000..8718d91 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -0,0 +1,150 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_device") +public class Device extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_id") + private Long batchId; + private String devcode; + @TableField("devtype_id") + private Long devtypeId; + @TableField("is_send") + private String isSend; + private String longitude; + private String latitude; + @TableField("install_height") + private String installHeight; + private String iccid; + private Long imei; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public Long getImei() { + return imei; + } + + public void setImei(Long imei) { + this.imei = imei; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Device{" + + "id=" + id + + ", batchId=" + batchId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", isSend=" + isSend + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", installHeight=" + installHeight + + ", iccid=" + iccid + + ", imei=" + imei + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java new file mode 100644 index 0000000..870c36f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_payments") +public class Payments extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @TableField("paytime") + private Date paytime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getPaytime() { + return paytime; + } + + public void setPaytime(Date paytime) { + this.paytime = paytime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Payments{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", paytime=" + paytime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java new file mode 100644 index 0000000..ae6b585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -0,0 +1,285 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_device_type") +public class ProductDeviceType extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 产品名称 + */ + @TableField("product_name") + private String productName; + /** + * 产品型号 + */ + @TableField("product_model") + private String productModel; + + /** + * 通讯版本号 + */ + @TableField("communication_version") + private String communicationVersion; + + /** + * 产品类型 + */ + @TableField("product_type") + private String productType; + + /** + * 整机版本号 + */ + @TableField("machine_version") + private String machineVersion; + /** + * 硬件版本号 + */ + @TableField("hardware_version") + private String hardwareVersion; + /** + * 软件版本号 + */ + @TableField("software_version") + private String softwareVersion; + /** + * 设计归档 + */ + @TableField("design_archive") + private String designArchive; + /** + * 批产归档 + */ + @TableField("batch_filing") + private String batchFiling; + /** + * 状态 + */ + @TableField("status") + private Integer status; + /** + * 性能指标 + */ + @TableField("kpi") + private String kpi; + /** + * 批产负责人 + */ + @TableField("principal") + private String principal; + /** + * 定额汇总表 + */ + @TableField("quota_summary") + private String quotaSummary; + + /** + * 权属部门 + */ + @TableField("deptid") + private String deptid; + + /** + * 备注 + */ + @TableField("descn") + private String descn; + + @TableField("createtime") + private Date createtime; + + + @TableField(exist = false) + private String statusFmt; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } + + public String getMachineVersion() { + return machineVersion; + } + + public void setMachineVersion(String machineVersion) { + this.machineVersion = machineVersion; + } + + public String getHardwareVersion() { + return hardwareVersion; + } + + public void setHardwareVersion(String hardwareVersion) { + this.hardwareVersion = hardwareVersion; + } + + public String getSoftwareVersion() { + return softwareVersion; + } + + public void setSoftwareVersion(String softwareVersion) { + this.softwareVersion = softwareVersion; + } + + public String getDesignArchive() { + return designArchive; + } + + public void setDesignArchive(String designArchive) { + this.designArchive = designArchive; + } + + public String getBatchFiling() { + return batchFiling; + } + + public void setBatchFiling(String batchFiling) { + this.batchFiling = batchFiling; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getKpi() { + return kpi; + } + + public void setKpi(String kpi) { + this.kpi = kpi; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public String getQuotaSummary() { + return quotaSummary; + } + + public void setQuotaSummary(String quotaSummary) { + this.quotaSummary = quotaSummary; + } + + public String getStatusFmt() { + return statusFmt; + } + + public void setStatusFmt(String statusFmt) { + this.statusFmt = statusFmt; + } + + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getProductType() { + return productType; + } + + public void setProductType(String productType) { + this.productType = productType; + } + + public String getCommunicationVersion() { + return communicationVersion; + } + + public void setCommunicationVersion(String communicationVersion) { + this.communicationVersion = communicationVersion; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductDeviceType{" + + "id=" + id + + ", productName=" + productName + + ", productModel=" + productModel + + ", machineVersion=" + machineVersion + + ", hardwareVersion=" + hardwareVersion + + ", softwareVersion=" + softwareVersion + + ", designArchive=" + designArchive + + ", batchFiling=" + batchFiling + + ", status=" + status + + ", kpi=" + kpi + + ", principal=" + principal + + ", quotaSummary=" + quotaSummary + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java new file mode 100644 index 0000000..b0fd924 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java @@ -0,0 +1,187 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_factory_information") +public class ProductFactoryInformation extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 厂家名称 + */ + @TableField("name") + private String name; + /** + * 厂家联系人 + */ + @TableField("person_name") + private String personName; + /** + * 地址 + */ + @TableField("address") + private String address; + /** + * 电话 + */ + @TableField("phone") + private String phone; + /** + * 开户行 + */ + @TableField("bank") + private String bank; + /** + * 税号 + */ + @TableField("tax_number") + private String taxNumber; + /** + * 在产设备 + */ + @TableField("producting_device") + private String productingDevice; + /** + * 设备报价表 + */ + @TableField("equipment_quotation") + private String equipmentQuotation; + + @TableField("createtime") + private Date createtime =new Date(); + + @TableField("deptid") + private String deptid; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPersonName() { + return personName; + } + + public void setPersonName(String personName) { + this.personName = personName; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getBank() { + return bank; + } + + public void setBank(String bank) { + this.bank = bank; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getProductingDevice() { + return productingDevice; + } + + public void setProductingDevice(String productingDevice) { + this.productingDevice = productingDevice; + } + + public String getEquipmentQuotation() { + return equipmentQuotation; + } + + public void setEquipmentQuotation(String equipmentQuotation) { + this.equipmentQuotation = equipmentQuotation; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductFactoryInformation{" + + "id=" + id + + ", name=" + name + + ", personName=" + personName + + ", address=" + address + + ", phone=" + phone + + ", bank=" + bank + + ", taxNumber=" + taxNumber + + ", productingDevice=" + productingDevice + + ", equipmentQuotation=" + equipmentQuotation + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java new file mode 100644 index 0000000..00cbc92 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -0,0 +1,99 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@TableName("product_project") +public class Project extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_name") + private String projectName; + @TableField("project_simple_name") + private String projectSimpleName; + @TableField("project_manager") + private String projectManager; + private String descn; + @TableField("createtime") + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getProjectManager() { + return projectManager; + } + + public void setProjectManager(String projectManager) { + this.projectManager = projectManager; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Project{" + + "id=" + id + + ", projectName=" + projectName + + ", projectSimpleName=" + projectSimpleName + + ", projectManager=" + projectManager + + ", descn=" + descn + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java new file mode 100644 index 0000000..658c2e1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java @@ -0,0 +1,126 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_reimburse") +public class Reimburse extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mi:ss") + @TableField("reimburse_time") + private Date reimburseTime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getReimburseTime() { + return reimburseTime; + } + + public void setReimburseTime(Date reimburseTime) { + this.reimburseTime = reimburseTime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Reimburse{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", reimburseTime=" + reimburseTime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java new file mode 100644 index 0000000..987efa7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java @@ -0,0 +1,141 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_task") +public class Task extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_id") + private Long projectId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("devmode_id") + private String devmodeId; + private Long devcount; + @TableField("delivery_time") + private Date deliveryTime; + private String demand; + private Date createtime; + @TableField(exist = false) + private String deliveryTimeFmt; + + @TableField(exist = false) + private Long taskId; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getProjectId() { + return projectId; + } + + public void setProjectId(Long projectId) { + this.projectId = projectId; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDevmodeId() { + return devmodeId; + } + + public void setDevmodeId(String devmodeId) { + this.devmodeId = devmodeId; + } + + public Long getDevcount() { + return devcount; + } + + public void setDevcount(Long devcount) { + this.devcount = devcount; + } + + public Date getDeliveryTime() { + return deliveryTime; + } + + public void setDeliveryTime(Date deliveryTime) { + this.deliveryTime = deliveryTime; + } + + public String getDemand() { + return demand; + } + + public void setDemand(String demand) { + this.demand = demand; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeliveryTimeFmt() { + return deliveryTimeFmt; + } + + public void setDeliveryTimeFmt(String deliveryTimeFmt) { + this.deliveryTimeFmt = deliveryTimeFmt; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Task{" + + "id=" + id + + ", projectId=" + projectId + + ", devtypeId=" + devtypeId + + ", devmodeId=" + devmodeId + + ", devcount=" + devcount + + ", deliveryTime=" + deliveryTime + + ", demand=" + demand + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java new file mode 100644 index 0000000..7785de5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface IAccountService extends IService { + + /** + * 根据用户名查用户 + * @param userName + * @return + */ + Account findUserByName(String userName); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java new file mode 100644 index 0000000..d8b5e87 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IContractService extends IService { + List selectPageList(Page page, String keyword1, String keyword2, String keyword3); + List reportExport(String keyword1, String keyword2, String keyword3); + void importContract( List contracts); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java new file mode 100644 index 0000000..0f2d6e0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IPaymentsService extends IService { + + boolean validate(Long proId,String money,String reorder); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java new file mode 100644 index 0000000..71490df --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -0,0 +1,62 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductDeviceTypeService extends IService { + + /** + * 批量导入设备类型列表 + * @param results + */ + void importDeviceType(List results); + + /** + * 导出列表 + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List reportExport(String keyword1,String keyword2,String keyword3); + + + /** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectPageDataScope(DataScope dataScope, Page page, + String keyword1, String keyword2, String keyword3); + + /** + * 获取在产的设备类型 + * @return + */ + List selectDeviceTypeList(); + + /** + * 根据产品型号获取产品 + * @param deviceModel + * @return + */ + ProductDeviceType selectDeviceTypeByModel(String deviceModel); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java new file mode 100644 index 0000000..455f60a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductFactoryInformationService extends IService { + /** + * 根据条件导出列表 + * @param keyword1 + * @param keyword2 + * @return + */ + List reportExport(String keyword1, String keyword2); + + + /** + * 导入 + * @param results + */ + void importDeviceType(List results); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java new file mode 100644 index 0000000..3c27bd1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface IProjectService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java new file mode 100644 index 0000000..ee0a55c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IReimburseService extends IService { + boolean validate(Long proId,String money,String reorder); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java new file mode 100644 index 0000000..09ce653 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.dao.AccountMapper; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.stereotype.Service; + +/** + *

+ * 管理员表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@Service +public class AccountServiceImpl extends ServiceImpl implements IAccountService { + + @Override + public Account findUserByName(String userName) { + + EntityWrapper userEntityWrapper = new EntityWrapper<>(); + userEntityWrapper.eq("name",userName); + userEntityWrapper.eq("status","1"); + return this.selectOne(userEntityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java new file mode 100644 index 0000000..dd04da0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java @@ -0,0 +1,138 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.shiro.ShiroUser; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ContractMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IPaymentsService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ContractServiceImpl extends ServiceImpl implements IContractService { + @Autowired + private IPaymentsService paymentsService; + @Autowired + private ICommonPermissionService permissionService; + @Autowired + private IAccountService userService; + @Value("${casic.producerName}") + private String producerName; + @Value("${casic.repairName}") + private String repairName; + + @Override + public List selectPageList(Page page, String keyword1, String keyword2, String keyword3) { + +// EntityWrapper query = new EntityWrapper<>(); +// if (ToolUtil.isNotEmpty(keyword1)) { +// query.like("contract_factory", keyword1); +// } +// if (ToolUtil.isNotEmpty(keyword3)) { +// query.like("contract_number", keyword3); +// } +// List contractList = this.selectPage(page, query).getRecords(); +// contractList.forEach(contract -> { +// contract.setPaymentStatus(getPaymentStatus(contract)); +// String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" +// + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" +// + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); +// contract.setNetFlow(netFlowStr); +// +// }); +// return contractList; + + + List contractList = new ArrayList<>(); + DataScope dataScope = permissionService.getCurrUserDataScope(); + ShiroUser currentUser = permissionService.getCurrLoginUser(); + if (currentUser.getRoleTips().contains(producerName) || currentUser.getRoleTips().contains(repairName)) { + contractList = this.baseMapper.findContractList(dataScope,page, currentUser.getName(), keyword1, keyword2, keyword3); + } else { + contractList = this.baseMapper.findContractList(dataScope,page, "", keyword1, keyword2, keyword3); + } + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + + }); + return contractList; + } + + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + + + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("contractFactory", keyword1); + } + if (ToolUtil.isNotEmpty(keyword3)) { + query.like("contract_number", keyword3); + } + + List contractList = this.selectList(query); + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); +// permissionService.findInDictByCode("applyStatus") + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + }); + + return contractList; + } + + @Override + public void importContract(List contracts) { + contracts.forEach(contract -> { + EntityWrapper query = new EntityWrapper<>(); + query.eq("contract_number", contract.getContractNumber()); + this.delete(query); + Account user = userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); + this.insert(contract); + }); + } + + public String getPaymentStatus(Contract contract) { + Map paraMap = new HashMap<>(); + paraMap.put("pro_id", contract.getId()); + List paymentsList = paymentsService.selectByMap(paraMap); + float sum = 0; + for (Payments payments : paymentsList) { + sum = sum + (ToolUtil.isNotEmpty(payments.getMoney()) ? Float.parseFloat(payments.getMoney()) : 0); + } + DecimalFormat df = new DecimalFormat("0"); + return sum + "," + df.format(100 * sum / Float.valueOf(contract.getContractAmount())) + "%"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java new file mode 100644 index 0000000..0c125d8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PaymentsMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class PaymentsServiceImpl extends ServiceImpl implements IPaymentsService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money,String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List paymentsList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Payments payments : paymentsList) { + if(reorder.equals(payments.getReorder())) continue; + total += ToolUtil.isNotEmpty(payments.getMoney()) ? + Long.valueOf(payments.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java new file mode 100644 index 0000000..ac6d447 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductDeviceTypeMapper; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.swing.text.html.parser.Entity; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductDeviceTypeServiceImpl extends ServiceImpl implements IProductDeviceTypeService { + + @Autowired + private ICommonPermissionService permissionService; + + @Transactional(rollbackFor = Exception.class) + @Override + public void importDeviceType(List results) { + + for (ProductDeviceType productDeviceType : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + this.baseMapper.delete(wrapper); + this.baseMapper.insert(productDeviceType); + } + } + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + wrapper.like("principal", keyword3); + } + List productDeviceTypes = this.selectList(wrapper); + for (ProductDeviceType productDeviceType : productDeviceTypes) { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + } + return productDeviceTypes; + } + + @Override + public List selectPageDataScope(DataScope dataScope, Page page, String keyword1, String keyword2, String keyword3) { + + List productDeviceTypeList = this.baseMapper.selectDataScopePage(dataScope, page, keyword1, keyword2, keyword3); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + return productDeviceTypeList; + + } + + @Override + public List selectDeviceTypeList() { + return this.baseMapper.selectDeviceTypeList(); + } + + + @Override + public ProductDeviceType selectDeviceTypeByModel(String deviceModel) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("product_model",deviceModel); + return this.selectOne(entityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java new file mode 100644 index 0000000..efe4410 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java @@ -0,0 +1,50 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductFactoryInformationMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductFactoryInformationServiceImpl extends ServiceImpl implements IProductFactoryInformationService { + + @Override + public List reportExport(String keyword1, String keyword2) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.like("producting_device", keyword2); + } + List productFactoryInformations = this.selectList(wrapper); + + return productFactoryInformations; + } + + + @Transactional(rollbackFor=Exception.class) + @Override + public void importDeviceType(List results) { + for (ProductFactoryInformation productFactoryInformation : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + delete(wrapper); + this.baseMapper.insert(productFactoryInformation); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java new file mode 100644 index 0000000..34655b0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.dao.ProjectMapper; +import com.casic.missiles.modular.system.service.IProjectService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@Service +public class ProjectServiceImpl extends ServiceImpl implements IProjectService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java new file mode 100644 index 0000000..5e8b77b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java @@ -0,0 +1,48 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.dao.ReimburseMapper; +import com.casic.missiles.modular.system.service.IReimburseService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ReimburseServiceImpl extends ServiceImpl implements IReimburseService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money, String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List reimburseList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Reimburse reimburse : reimburseList) { + if (reorder.equals(reimburse.getReorder())) continue; + total += ToolUtil.isNotEmpty(reimburse.getMoney()) ? + Long.valueOf(reimburse.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java new file mode 100644 index 0000000..d5ffadb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java @@ -0,0 +1,235 @@ +package com.casic.missiles.modular.system.util; + +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; + +import java.util.*; + +/** + * @author test203 + * @since 2020-04-06 + */ +public class DeviceUtil { + private final static String factoryCode = "20"; + private final static String wellExcludeCode = "4120"; + private final static String loraDevice = "A"; + private static Map devTypeCountHashMap = new HashMap(); + + static { + devTypeCountHashMap.put("电子标识器", 99999L); + devTypeCountHashMap.put("井盖状态监测仪", 65534L); + devTypeCountHashMap.put("灯箱控制器", 65535L); + devTypeCountHashMap.put("单灯控制器(单路)", 65535L); + devTypeCountHashMap.put("单灯控制器(双路)", 65535L); + devTypeCountHashMap.put("数据集中器", 255L); + devTypeCountHashMap.put("有害气体监测仪", 999L); + } + + public static List createDevCodes(ProductDeviceType deviceType, List batches) { + List deviceList = new ArrayList<>(); + try { + if ("电子标识器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 年份XX 批次号XX 编号XXXXX + String devCode = deviceType.getProductType() + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%05d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("井盖状态监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + String wellCode4 = String.format("%04x", i); + if (wellExcludeCode.equals(wellCode4)) { + continue; + } + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + wellCode4; + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("灯箱控制器".equals(deviceType.getProductName()) || + "单灯控制器(单路)".equals(deviceType.getProductName()) || + "单灯控制器(双路)".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("数据集中器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("有害气体监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型WS2000X- 年份XX 批次序号XXXX 编号XXX + String devCode = deviceType.getProductType() + + getYearFmt() + + String.format("%04d", batch.getBatchNumber()) + + String.format("%03d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } + //其他设备类型分lora和非lora版本 + else { + if (loraDevice.equals(deviceType.getCommunicationVersion())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } else { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return deviceList; + } + + + public static Map validate(ProductDeviceType deviceType, List batches, Task task) { + Map resultMap = new HashMap<>(); + boolean success = true; + String msg = ""; + long devSum = null != task ? task.getDevcount() : 0; + long devcount = 0, batchCountMax; + batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? + 0 : devTypeCountHashMap.get(deviceType.getProductName()); + if (0 == batchCountMax) { + if (deviceType.getProductModel().indexOf(loraDevice) + == deviceType.getProductModel().length() - 1) { + batchCountMax = 255; + } else { + batchCountMax = 9999; + } + } + for (Batch batch : batches) { + if (batch.getBatchCount() > batchCountMax) { + success = false; + msg = batch.getBatchNumber() + "批次号数量超过了最大范围" + batchCountMax; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + devcount += batch.getBatchCount(); + } + if (devcount != devSum) { + return returnMsg(); + } + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + + public static Map returnMsg() { + Map resultMap = new HashMap<>(); + resultMap.put("success", false); + resultMap.put("msg", "所有批次数量之和与任务中设备数量不一致!"); + return resultMap; + } + + /** + * 获取编码中的年份 + * + * @return + */ + public static String getYearFmt() { + + return DateUtil.format(new Date(), "yyyy").substring(2); + } + + + /** + * 比较2个map + * + * @param batchMap + * @param batchMap1 + * @return + */ + public static boolean equalMap(Map batchMap, Map batchMap1) { + if (batchMap.size() != batchMap1.size()) { + return false; + } + Iterator iter1 = batchMap.keySet().iterator(); + while (iter1.hasNext()) { + Long map1key = iter1.next(); + String map1value = batchMap.get(map1key).toString(); + String map2value = batchMap1.get(map1key).toString(); + if (!map1value.equals(map2value)) { + return false; + } + } + return true; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java new file mode 100644 index 0000000..33c3535 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java @@ -0,0 +1,43 @@ +package com.casic.missiles.modular.system.util; + +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; + +public class FileUtil { + public static File createFile(String path) throws IOException { + File file = new File(path); + if (!file.exists()) { + file.getParentFile().mkdirs(); + file.createNewFile(); + } + return file; + } + + + public static void downloadLocalFile(HttpServletResponse response,String path, String fileName) throws IOException { + File file = new File(path); + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", "attachment; filename=\"" + URLEncoder.encode(fileName, "UTF-8") + "\""); + response.setContentLength((int) file.length()); + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java new file mode 100644 index 0000000..341d3d1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.task.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.task.service.IBatchService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 批次控制器 + * + * @author dev + * @Date 2020-03-27 15:29:55 + */ +@Controller +@RequestMapping("/batch") +public class BatchController extends BaseController { + + + @Autowired + private IBatchService batchService; + + + /** + * 获取批次列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return batchService.selectList(null); + } + + /** + * 获取批次分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = batchService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增批次并生成设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + @Transactional + public Object add(@RequestBody List batches, Task task) { + + return batchService.addBatchAndDevices(batches,task); + + } + + /** + * 删除批次 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String batchId) { + batchService.deleteById(batchId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("batchIds") List batchIds) { + batchService.deleteBatchIds(batchIds); + return ResponseData.success(); + } + + /** + * 修改批次 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Batch batch) { + batchService.updateById(batch); + return ResponseData.success(); + } + + + /** + * 根据设备类型id + * 查找批次号 + */ + @RequestMapping(value = "/getBatchNumber") + @ResponseBody + public Object getBatchNumber(Long devtypeId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.orderBy("id", false); + Batch batch = batchService.selectOne(entityWrapper); + return ResponseData.success(200, "", batch != null ? batch.getBatchNumber() + 1 : 1); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java new file mode 100644 index 0000000..f463168 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java @@ -0,0 +1,102 @@ +package com.casic.missiles.modular.task.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * 任务控制器 + * + * @author dev + * @Date 2020-03-27 15:28:26 + */ +@Controller +@RequestMapping("/task") +public class TaskController extends BaseController { + + + @Autowired + private ITaskService taskService; + + + /** + * 获取任务列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return taskService.selectList(null); + } + + /** + * 获取任务分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = taskService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增任务 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + taskService.insert(task); + return ResponseData.success(); + } + + /** + * 删除任务 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String taskId) { + taskService.deleteById(taskId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("taskIds") List taskIds) { + taskService.deleteBatchIds(taskIds); + return ResponseData.success(); + } + + /** + * 修改任务 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + taskService.updateById(task); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java new file mode 100644 index 0000000..04c7ef8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.task.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IBatchService extends IService { + + /** + * 添加批次和生成设备 + * @param batches + * @param task + * @return + */ + ResponseData addBatchAndDevices(List batches, Task task); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java new file mode 100644 index 0000000..50e1d37 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.task.service; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface ITaskService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java new file mode 100644 index 0000000..a435e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dao.BatchMapper; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.DeviceUtil; +import com.casic.missiles.modular.task.service.IBatchService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class BatchServiceImpl extends ServiceImpl implements IBatchService { + + @Autowired + private IProductDeviceTypeService deviceTypeService; + @Autowired + private IDeviceService deviceService; + + @Transactional(rollbackFor=Exception.class) + @Override + public ResponseData addBatchAndDevices(List batches, Task task) { + //提交前先验证是否已经存在,若存在且批次号或每批数量改变先删除 + try { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("task_id", task.getTaskId()); + List batchList = this.selectList(entityWrapper); + Map batchMap= new HashMap<>(); + Map batchMap1= new HashMap<>(); + List batchIdlist = new ArrayList<>(); + for (Batch batch : batches) { + batchMap.put(batch.getBatchNumber(),batch.getBatchCount()); + batch.setTaskId(task.getTaskId()); + batch.setDevtypeId(task.getDevtypeId()); + batchIdlist.add(batch.getId()); + } + for (Batch batch : batchList) { + batchMap1.put(batch.getBatchNumber(),batch.getBatchCount()); + } + + //若批次号和数量不变只更新批次表 + if (DeviceUtil.equalMap(batchMap, batchMap1)) { + this.insertOrUpdateBatch(batches); + } + //若批次号和数量更新,更新设备表(删除批次相关的设备后,写入新的设备) + else { + + //验证设备数量是否合格 + ProductDeviceType deviceType = deviceTypeService.selectDeviceTypeByModel(task.getDevmodeId()); + Map resultMap = DeviceUtil.validate(deviceType, batches, task); + if (!Boolean.valueOf(resultMap.get("success").toString())) { + return ResponseData.error(400, resultMap.get("msg").toString()); + } + //删除批次 + EntityWrapper batchEntityWrapper = new EntityWrapper<>(); + batchEntityWrapper.eq("task_id", task.getTaskId()); + this.delete(batchEntityWrapper); + //删除设备 + EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); + deviceEntityWrapper.in("batch_id", batchIdlist); + deviceEntityWrapper.eq("devtype_id",task.getDevtypeId()); + deviceService.delete(deviceEntityWrapper); + + //写入批次 + this.insertBatch(batches); + //写入设备 + List deviceList = DeviceUtil.createDevCodes(deviceType, batches); + deviceService.insertBatch(deviceList); + } + } catch (Exception e) { + e.printStackTrace(); + } + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java new file mode 100644 index 0000000..fac60bb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.dao.TaskMapper; +import com.casic.missiles.modular.task.service.ITaskService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class TaskServiceImpl extends ServiceImpl implements ITaskService { + +} diff --git a/casic-web/pom.xml b/casic-web/pom.xml new file mode 100644 index 0000000..f9f1c84 --- /dev/null +++ b/casic-web/pom.xml @@ -0,0 +1,300 @@ + + + 4.0.0 + + com.casic + casic-product-device + ../pom.xml + 1.0.0-SNAPSHOT + + casic-web + ${pro.version} + jar + casic-web + casic web启动入口 + + + + dev + + true + + + dev + true + 3600 + 3600 + + + + + test + + test + false + 180 + 180 + + + + + prod + + prod + true + 3600 + 3600 + + + + + + + + + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-admin-core + ${casic.version} + + + com.casic + casic-admin-area + ${casic.version} + + + + + + + + + + com.casic + casic-device + ${pro.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-cache + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + org.springframework.boot + spring-boot-devtools + true + + + + + + org.apache.shiro + shiro-core + + + slf4j-api + org.slf4j + + + + + org.apache.shiro + shiro-spring + + + org.apache.shiro + shiro-ehcache + + + slf4j-api + org.slf4j + + + + + org.ehcache + ehcache + ${ehcache.version} + + + + commons-io + commons-io + + + com.github.penggle + kaptcha + + + com.google.zxing + core + + + com.ibeetl + beetl + + + org.apache.commons + commons-lang3 + + + com.oracle + ojdbc6 + ${oracle.version} + + + org.codehaus.groovy + groovy-all + true + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + org.apache.maven.plugins + maven-jar-plugin + + + + /config/** + **/MockController.class + + + + + + + + + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + maven-assembly-plugin + + + false + + src/main/build/package.xml + + + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-resources-plugin + 2.6 + + + ${resource.delimiter} + + true + + + + copy-resources + validate + + copy-resources + + + ${project.build.outputDirectory} + + + + src/main/resources + true + + + + + + + + + + src/main/webapp + + + src/main/resources + + + src/main/java + + **/*.xml + + true + + + + + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java new file mode 100644 index 0000000..4670df3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 集中器相关日志 + */ +public class ProjectDict extends AbstractDictMap { + public static final String PROJECT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + @Override + public void init() { + put("projectName","项目名称"); + put("projectSimpleName","项目简称"); + put("projectManager","项目经理"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java new file mode 100644 index 0000000..7981a17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dto; + +/** + * 用于设备类型展示 + * @author test203 + * @date 2020-04-03 + */ +public class DeviceTypeDto { + private Long id; + private String productName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java new file mode 100644 index 0000000..f254585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java @@ -0,0 +1,361 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.math.BigDecimal; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; + +/** + *

+ * 管理员表 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@TableName("sys_user") +public class Account extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + /** + * 头像 + */ + private String avatar; + /** + * 账号 + */ + private String account; + /** + * 密码 + */ + private String password; + /** + * md5密码盐 + */ + private String salt; + /** + * 名字 + */ + private String name; + /** + * 生日 + */ + private Date birthday; + /** + * 性别(1:男 2:女) + */ + private String sex; + /** + * 电子邮件 + */ + private String email; + /** + * 电话 + */ + private String phone; + /** + * 角色id + */ + private String roleid; + /** + * 部门id + */ + private Long deptid; + /** + * 状态(1:启用 2:冻结 3:删除) + */ + private String status; + /** + * 创建时间 + */ + private Date createtime; + /** + * 保留字段 + */ + private Integer version; + private String targetid; + private String targetname; + @TableField("password_sync") + private String passwordSync; + @TableField("IS_SYNC") + private Integer isSync; + private String simplename; + /** + * 同步组织ID + */ + @TableField("TARGET_DEPTID_SYNC") + private String targetDeptidSync; + @TableField("LOGIN_IP") + private String loginIp; + @TableField("LOGIN_MAC") + private String loginMac; + /** + * 最后在线时间 + */ + @TableField("LAST_TIME") + private Date lastTime; + /** + * 经度 + */ + @TableField("POSITION_LNG") + private BigDecimal positionLng; + /** + * 纬度 + */ + @TableField("POSITION_LAT") + private BigDecimal positionLat; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt() { + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getRoleid() { + return roleid; + } + + public void setRoleid(String roleid) { + this.roleid = roleid; + } + + public Long getDeptid() { + return deptid; + } + + public void setDeptid(Long deptid) { + this.deptid = deptid; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + public String getTargetid() { + return targetid; + } + + public void setTargetid(String targetid) { + this.targetid = targetid; + } + + public String getTargetname() { + return targetname; + } + + public void setTargetname(String targetname) { + this.targetname = targetname; + } + + public String getPasswordSync() { + return passwordSync; + } + + public void setPasswordSync(String passwordSync) { + this.passwordSync = passwordSync; + } + + public Integer getIsSync() { + return isSync; + } + + public void setIsSync(Integer isSync) { + this.isSync = isSync; + } + + public String getSimplename() { + return simplename; + } + + public void setSimplename(String simplename) { + this.simplename = simplename; + } + + public String getTargetDeptidSync() { + return targetDeptidSync; + } + + public void setTargetDeptidSync(String targetDeptidSync) { + this.targetDeptidSync = targetDeptidSync; + } + + public String getLoginIp() { + return loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getLoginMac() { + return loginMac; + } + + public void setLoginMac(String loginMac) { + this.loginMac = loginMac; + } + + public Date getLastTime() { + return lastTime; + } + + public void setLastTime(Date lastTime) { + this.lastTime = lastTime; + } + + public BigDecimal getPositionLng() { + return positionLng; + } + + public void setPositionLng(BigDecimal positionLng) { + this.positionLng = positionLng; + } + + public BigDecimal getPositionLat() { + return positionLat; + } + + public void setPositionLat(BigDecimal positionLat) { + this.positionLat = positionLat; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", avatar=" + avatar + + ", account=" + account + + ", password=" + password + + ", salt=" + salt + + ", name=" + name + + ", birthday=" + birthday + + ", sex=" + sex + + ", email=" + email + + ", phone=" + phone + + ", roleid=" + roleid + + ", deptid=" + deptid + + ", status=" + status + + ", createtime=" + createtime + + ", version=" + version + + ", targetid=" + targetid + + ", targetname=" + targetname + + ", passwordSync=" + passwordSync + + ", isSync=" + isSync + + ", simplename=" + simplename + + ", targetDeptidSync=" + targetDeptidSync + + ", loginIp=" + loginIp + + ", loginMac=" + loginMac + + ", lastTime=" + lastTime + + ", positionLng=" + positionLng + + ", positionLat=" + positionLat + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java new file mode 100644 index 0000000..81516b7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -0,0 +1,110 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_batch") +public class Batch extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_number") + private Long batchNumber; + @TableField("batch_count") + private Long batchCount; + @TableField("contract_id") + private Long contractId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("task_id") + private Long taskId; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(Long batchNumber) { + this.batchNumber = batchNumber; + } + + public Long getBatchCount() { + return batchCount; + } + + public void setBatchCount(Long batchCount) { + this.batchCount = batchCount; + } + + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Batch{" + + "id=" + id + + ", batchNumber=" + batchNumber + + ", batchCount=" + batchCount + + ", contractId=" + contractId + + ", taskId=" + taskId + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java new file mode 100644 index 0000000..893a1ed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -0,0 +1,186 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_contract") +public class Contract extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("contract_number") + private String contractNumber; + @TableField("contract_name") + private String contractName; + @TableField("contract_content") + private String contractContent; + @TableField("contract_amount") + private String contractAmount; + @TableField("external_project_apply") + private String externalProjectApply; + @TableField("external_contract_apply") + private String externalContractApply; + @TableField("principal") + private String principal; + @TableField("external_check_apply") + private String externalCheckApply; + @TableField("contract_factory") + private String contractFactory; + @TableField("createtime") + private Date createtime; + @TableField(exist = false) + private String paymentStatus; + @TableField(exist = false) + private String netFlow; + @TableField("deptid") + private String deptid; + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getContractName() { + return contractName; + } + + public void setContractName(String contractName) { + this.contractName = contractName; + } + + public String getContractContent() { + return contractContent; + } + + public void setContractContent(String contractContent) { + this.contractContent = contractContent; + } + + public String getContractAmount() { + return contractAmount; + } + + public void setContractAmount(String contractAmount) { + this.contractAmount = contractAmount; + } + + public String getExternalProjectApply() { + return externalProjectApply; + } + + public void setExternalProjectApply(String externalProjectApply) { + this.externalProjectApply = externalProjectApply; + } + + public String getExternalContractApply() { + return externalContractApply; + } + + public void setExternalContractApply(String externalContractApply) { + this.externalContractApply = externalContractApply; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalCheckApply() { + return externalCheckApply; + } + + public void setExternalCheckApply(String externalCheckApply) { + this.externalCheckApply = externalCheckApply; + } + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public String getContractFactory() { + return contractFactory; + } + + public void setContractFactory(String contractFactory) { + this.contractFactory = contractFactory; + } + + public String getNetFlow() { + return netFlow; + } + + public void setNetFlow(String netFlow) { + this.netFlow = netFlow; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Contract{" + + "contractNumber=" + contractNumber + + ", contractName=" + contractName + + ", contractContent=" + contractContent + + ", contractAmount=" + contractAmount + + ", externalProjectApply=" + externalProjectApply + + ", externalContractApply=" + externalContractApply + + ", principal=" + principal + + ", id=" + id + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java new file mode 100644 index 0000000..8718d91 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -0,0 +1,150 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_device") +public class Device extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_id") + private Long batchId; + private String devcode; + @TableField("devtype_id") + private Long devtypeId; + @TableField("is_send") + private String isSend; + private String longitude; + private String latitude; + @TableField("install_height") + private String installHeight; + private String iccid; + private Long imei; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public Long getImei() { + return imei; + } + + public void setImei(Long imei) { + this.imei = imei; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Device{" + + "id=" + id + + ", batchId=" + batchId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", isSend=" + isSend + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", installHeight=" + installHeight + + ", iccid=" + iccid + + ", imei=" + imei + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java new file mode 100644 index 0000000..870c36f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_payments") +public class Payments extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @TableField("paytime") + private Date paytime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getPaytime() { + return paytime; + } + + public void setPaytime(Date paytime) { + this.paytime = paytime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Payments{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", paytime=" + paytime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java new file mode 100644 index 0000000..ae6b585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -0,0 +1,285 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_device_type") +public class ProductDeviceType extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 产品名称 + */ + @TableField("product_name") + private String productName; + /** + * 产品型号 + */ + @TableField("product_model") + private String productModel; + + /** + * 通讯版本号 + */ + @TableField("communication_version") + private String communicationVersion; + + /** + * 产品类型 + */ + @TableField("product_type") + private String productType; + + /** + * 整机版本号 + */ + @TableField("machine_version") + private String machineVersion; + /** + * 硬件版本号 + */ + @TableField("hardware_version") + private String hardwareVersion; + /** + * 软件版本号 + */ + @TableField("software_version") + private String softwareVersion; + /** + * 设计归档 + */ + @TableField("design_archive") + private String designArchive; + /** + * 批产归档 + */ + @TableField("batch_filing") + private String batchFiling; + /** + * 状态 + */ + @TableField("status") + private Integer status; + /** + * 性能指标 + */ + @TableField("kpi") + private String kpi; + /** + * 批产负责人 + */ + @TableField("principal") + private String principal; + /** + * 定额汇总表 + */ + @TableField("quota_summary") + private String quotaSummary; + + /** + * 权属部门 + */ + @TableField("deptid") + private String deptid; + + /** + * 备注 + */ + @TableField("descn") + private String descn; + + @TableField("createtime") + private Date createtime; + + + @TableField(exist = false) + private String statusFmt; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } + + public String getMachineVersion() { + return machineVersion; + } + + public void setMachineVersion(String machineVersion) { + this.machineVersion = machineVersion; + } + + public String getHardwareVersion() { + return hardwareVersion; + } + + public void setHardwareVersion(String hardwareVersion) { + this.hardwareVersion = hardwareVersion; + } + + public String getSoftwareVersion() { + return softwareVersion; + } + + public void setSoftwareVersion(String softwareVersion) { + this.softwareVersion = softwareVersion; + } + + public String getDesignArchive() { + return designArchive; + } + + public void setDesignArchive(String designArchive) { + this.designArchive = designArchive; + } + + public String getBatchFiling() { + return batchFiling; + } + + public void setBatchFiling(String batchFiling) { + this.batchFiling = batchFiling; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getKpi() { + return kpi; + } + + public void setKpi(String kpi) { + this.kpi = kpi; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public String getQuotaSummary() { + return quotaSummary; + } + + public void setQuotaSummary(String quotaSummary) { + this.quotaSummary = quotaSummary; + } + + public String getStatusFmt() { + return statusFmt; + } + + public void setStatusFmt(String statusFmt) { + this.statusFmt = statusFmt; + } + + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getProductType() { + return productType; + } + + public void setProductType(String productType) { + this.productType = productType; + } + + public String getCommunicationVersion() { + return communicationVersion; + } + + public void setCommunicationVersion(String communicationVersion) { + this.communicationVersion = communicationVersion; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductDeviceType{" + + "id=" + id + + ", productName=" + productName + + ", productModel=" + productModel + + ", machineVersion=" + machineVersion + + ", hardwareVersion=" + hardwareVersion + + ", softwareVersion=" + softwareVersion + + ", designArchive=" + designArchive + + ", batchFiling=" + batchFiling + + ", status=" + status + + ", kpi=" + kpi + + ", principal=" + principal + + ", quotaSummary=" + quotaSummary + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java new file mode 100644 index 0000000..b0fd924 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java @@ -0,0 +1,187 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_factory_information") +public class ProductFactoryInformation extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 厂家名称 + */ + @TableField("name") + private String name; + /** + * 厂家联系人 + */ + @TableField("person_name") + private String personName; + /** + * 地址 + */ + @TableField("address") + private String address; + /** + * 电话 + */ + @TableField("phone") + private String phone; + /** + * 开户行 + */ + @TableField("bank") + private String bank; + /** + * 税号 + */ + @TableField("tax_number") + private String taxNumber; + /** + * 在产设备 + */ + @TableField("producting_device") + private String productingDevice; + /** + * 设备报价表 + */ + @TableField("equipment_quotation") + private String equipmentQuotation; + + @TableField("createtime") + private Date createtime =new Date(); + + @TableField("deptid") + private String deptid; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPersonName() { + return personName; + } + + public void setPersonName(String personName) { + this.personName = personName; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getBank() { + return bank; + } + + public void setBank(String bank) { + this.bank = bank; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getProductingDevice() { + return productingDevice; + } + + public void setProductingDevice(String productingDevice) { + this.productingDevice = productingDevice; + } + + public String getEquipmentQuotation() { + return equipmentQuotation; + } + + public void setEquipmentQuotation(String equipmentQuotation) { + this.equipmentQuotation = equipmentQuotation; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductFactoryInformation{" + + "id=" + id + + ", name=" + name + + ", personName=" + personName + + ", address=" + address + + ", phone=" + phone + + ", bank=" + bank + + ", taxNumber=" + taxNumber + + ", productingDevice=" + productingDevice + + ", equipmentQuotation=" + equipmentQuotation + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java new file mode 100644 index 0000000..00cbc92 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -0,0 +1,99 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@TableName("product_project") +public class Project extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_name") + private String projectName; + @TableField("project_simple_name") + private String projectSimpleName; + @TableField("project_manager") + private String projectManager; + private String descn; + @TableField("createtime") + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getProjectManager() { + return projectManager; + } + + public void setProjectManager(String projectManager) { + this.projectManager = projectManager; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Project{" + + "id=" + id + + ", projectName=" + projectName + + ", projectSimpleName=" + projectSimpleName + + ", projectManager=" + projectManager + + ", descn=" + descn + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java new file mode 100644 index 0000000..658c2e1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java @@ -0,0 +1,126 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_reimburse") +public class Reimburse extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mi:ss") + @TableField("reimburse_time") + private Date reimburseTime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getReimburseTime() { + return reimburseTime; + } + + public void setReimburseTime(Date reimburseTime) { + this.reimburseTime = reimburseTime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Reimburse{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", reimburseTime=" + reimburseTime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java new file mode 100644 index 0000000..987efa7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java @@ -0,0 +1,141 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_task") +public class Task extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_id") + private Long projectId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("devmode_id") + private String devmodeId; + private Long devcount; + @TableField("delivery_time") + private Date deliveryTime; + private String demand; + private Date createtime; + @TableField(exist = false) + private String deliveryTimeFmt; + + @TableField(exist = false) + private Long taskId; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getProjectId() { + return projectId; + } + + public void setProjectId(Long projectId) { + this.projectId = projectId; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDevmodeId() { + return devmodeId; + } + + public void setDevmodeId(String devmodeId) { + this.devmodeId = devmodeId; + } + + public Long getDevcount() { + return devcount; + } + + public void setDevcount(Long devcount) { + this.devcount = devcount; + } + + public Date getDeliveryTime() { + return deliveryTime; + } + + public void setDeliveryTime(Date deliveryTime) { + this.deliveryTime = deliveryTime; + } + + public String getDemand() { + return demand; + } + + public void setDemand(String demand) { + this.demand = demand; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeliveryTimeFmt() { + return deliveryTimeFmt; + } + + public void setDeliveryTimeFmt(String deliveryTimeFmt) { + this.deliveryTimeFmt = deliveryTimeFmt; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Task{" + + "id=" + id + + ", projectId=" + projectId + + ", devtypeId=" + devtypeId + + ", devmodeId=" + devmodeId + + ", devcount=" + devcount + + ", deliveryTime=" + deliveryTime + + ", demand=" + demand + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java new file mode 100644 index 0000000..7785de5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface IAccountService extends IService { + + /** + * 根据用户名查用户 + * @param userName + * @return + */ + Account findUserByName(String userName); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java new file mode 100644 index 0000000..d8b5e87 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IContractService extends IService { + List selectPageList(Page page, String keyword1, String keyword2, String keyword3); + List reportExport(String keyword1, String keyword2, String keyword3); + void importContract( List contracts); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java new file mode 100644 index 0000000..0f2d6e0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IPaymentsService extends IService { + + boolean validate(Long proId,String money,String reorder); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java new file mode 100644 index 0000000..71490df --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -0,0 +1,62 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductDeviceTypeService extends IService { + + /** + * 批量导入设备类型列表 + * @param results + */ + void importDeviceType(List results); + + /** + * 导出列表 + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List reportExport(String keyword1,String keyword2,String keyword3); + + + /** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectPageDataScope(DataScope dataScope, Page page, + String keyword1, String keyword2, String keyword3); + + /** + * 获取在产的设备类型 + * @return + */ + List selectDeviceTypeList(); + + /** + * 根据产品型号获取产品 + * @param deviceModel + * @return + */ + ProductDeviceType selectDeviceTypeByModel(String deviceModel); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java new file mode 100644 index 0000000..455f60a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductFactoryInformationService extends IService { + /** + * 根据条件导出列表 + * @param keyword1 + * @param keyword2 + * @return + */ + List reportExport(String keyword1, String keyword2); + + + /** + * 导入 + * @param results + */ + void importDeviceType(List results); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java new file mode 100644 index 0000000..3c27bd1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface IProjectService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java new file mode 100644 index 0000000..ee0a55c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IReimburseService extends IService { + boolean validate(Long proId,String money,String reorder); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java new file mode 100644 index 0000000..09ce653 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.dao.AccountMapper; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.stereotype.Service; + +/** + *

+ * 管理员表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@Service +public class AccountServiceImpl extends ServiceImpl implements IAccountService { + + @Override + public Account findUserByName(String userName) { + + EntityWrapper userEntityWrapper = new EntityWrapper<>(); + userEntityWrapper.eq("name",userName); + userEntityWrapper.eq("status","1"); + return this.selectOne(userEntityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java new file mode 100644 index 0000000..dd04da0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java @@ -0,0 +1,138 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.shiro.ShiroUser; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ContractMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IPaymentsService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ContractServiceImpl extends ServiceImpl implements IContractService { + @Autowired + private IPaymentsService paymentsService; + @Autowired + private ICommonPermissionService permissionService; + @Autowired + private IAccountService userService; + @Value("${casic.producerName}") + private String producerName; + @Value("${casic.repairName}") + private String repairName; + + @Override + public List selectPageList(Page page, String keyword1, String keyword2, String keyword3) { + +// EntityWrapper query = new EntityWrapper<>(); +// if (ToolUtil.isNotEmpty(keyword1)) { +// query.like("contract_factory", keyword1); +// } +// if (ToolUtil.isNotEmpty(keyword3)) { +// query.like("contract_number", keyword3); +// } +// List contractList = this.selectPage(page, query).getRecords(); +// contractList.forEach(contract -> { +// contract.setPaymentStatus(getPaymentStatus(contract)); +// String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" +// + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" +// + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); +// contract.setNetFlow(netFlowStr); +// +// }); +// return contractList; + + + List contractList = new ArrayList<>(); + DataScope dataScope = permissionService.getCurrUserDataScope(); + ShiroUser currentUser = permissionService.getCurrLoginUser(); + if (currentUser.getRoleTips().contains(producerName) || currentUser.getRoleTips().contains(repairName)) { + contractList = this.baseMapper.findContractList(dataScope,page, currentUser.getName(), keyword1, keyword2, keyword3); + } else { + contractList = this.baseMapper.findContractList(dataScope,page, "", keyword1, keyword2, keyword3); + } + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + + }); + return contractList; + } + + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + + + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("contractFactory", keyword1); + } + if (ToolUtil.isNotEmpty(keyword3)) { + query.like("contract_number", keyword3); + } + + List contractList = this.selectList(query); + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); +// permissionService.findInDictByCode("applyStatus") + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + }); + + return contractList; + } + + @Override + public void importContract(List contracts) { + contracts.forEach(contract -> { + EntityWrapper query = new EntityWrapper<>(); + query.eq("contract_number", contract.getContractNumber()); + this.delete(query); + Account user = userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); + this.insert(contract); + }); + } + + public String getPaymentStatus(Contract contract) { + Map paraMap = new HashMap<>(); + paraMap.put("pro_id", contract.getId()); + List paymentsList = paymentsService.selectByMap(paraMap); + float sum = 0; + for (Payments payments : paymentsList) { + sum = sum + (ToolUtil.isNotEmpty(payments.getMoney()) ? Float.parseFloat(payments.getMoney()) : 0); + } + DecimalFormat df = new DecimalFormat("0"); + return sum + "," + df.format(100 * sum / Float.valueOf(contract.getContractAmount())) + "%"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java new file mode 100644 index 0000000..0c125d8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PaymentsMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class PaymentsServiceImpl extends ServiceImpl implements IPaymentsService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money,String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List paymentsList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Payments payments : paymentsList) { + if(reorder.equals(payments.getReorder())) continue; + total += ToolUtil.isNotEmpty(payments.getMoney()) ? + Long.valueOf(payments.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java new file mode 100644 index 0000000..ac6d447 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductDeviceTypeMapper; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.swing.text.html.parser.Entity; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductDeviceTypeServiceImpl extends ServiceImpl implements IProductDeviceTypeService { + + @Autowired + private ICommonPermissionService permissionService; + + @Transactional(rollbackFor = Exception.class) + @Override + public void importDeviceType(List results) { + + for (ProductDeviceType productDeviceType : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + this.baseMapper.delete(wrapper); + this.baseMapper.insert(productDeviceType); + } + } + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + wrapper.like("principal", keyword3); + } + List productDeviceTypes = this.selectList(wrapper); + for (ProductDeviceType productDeviceType : productDeviceTypes) { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + } + return productDeviceTypes; + } + + @Override + public List selectPageDataScope(DataScope dataScope, Page page, String keyword1, String keyword2, String keyword3) { + + List productDeviceTypeList = this.baseMapper.selectDataScopePage(dataScope, page, keyword1, keyword2, keyword3); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + return productDeviceTypeList; + + } + + @Override + public List selectDeviceTypeList() { + return this.baseMapper.selectDeviceTypeList(); + } + + + @Override + public ProductDeviceType selectDeviceTypeByModel(String deviceModel) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("product_model",deviceModel); + return this.selectOne(entityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java new file mode 100644 index 0000000..efe4410 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java @@ -0,0 +1,50 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductFactoryInformationMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductFactoryInformationServiceImpl extends ServiceImpl implements IProductFactoryInformationService { + + @Override + public List reportExport(String keyword1, String keyword2) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.like("producting_device", keyword2); + } + List productFactoryInformations = this.selectList(wrapper); + + return productFactoryInformations; + } + + + @Transactional(rollbackFor=Exception.class) + @Override + public void importDeviceType(List results) { + for (ProductFactoryInformation productFactoryInformation : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + delete(wrapper); + this.baseMapper.insert(productFactoryInformation); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java new file mode 100644 index 0000000..34655b0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.dao.ProjectMapper; +import com.casic.missiles.modular.system.service.IProjectService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@Service +public class ProjectServiceImpl extends ServiceImpl implements IProjectService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java new file mode 100644 index 0000000..5e8b77b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java @@ -0,0 +1,48 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.dao.ReimburseMapper; +import com.casic.missiles.modular.system.service.IReimburseService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ReimburseServiceImpl extends ServiceImpl implements IReimburseService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money, String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List reimburseList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Reimburse reimburse : reimburseList) { + if (reorder.equals(reimburse.getReorder())) continue; + total += ToolUtil.isNotEmpty(reimburse.getMoney()) ? + Long.valueOf(reimburse.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java new file mode 100644 index 0000000..d5ffadb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java @@ -0,0 +1,235 @@ +package com.casic.missiles.modular.system.util; + +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; + +import java.util.*; + +/** + * @author test203 + * @since 2020-04-06 + */ +public class DeviceUtil { + private final static String factoryCode = "20"; + private final static String wellExcludeCode = "4120"; + private final static String loraDevice = "A"; + private static Map devTypeCountHashMap = new HashMap(); + + static { + devTypeCountHashMap.put("电子标识器", 99999L); + devTypeCountHashMap.put("井盖状态监测仪", 65534L); + devTypeCountHashMap.put("灯箱控制器", 65535L); + devTypeCountHashMap.put("单灯控制器(单路)", 65535L); + devTypeCountHashMap.put("单灯控制器(双路)", 65535L); + devTypeCountHashMap.put("数据集中器", 255L); + devTypeCountHashMap.put("有害气体监测仪", 999L); + } + + public static List createDevCodes(ProductDeviceType deviceType, List batches) { + List deviceList = new ArrayList<>(); + try { + if ("电子标识器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 年份XX 批次号XX 编号XXXXX + String devCode = deviceType.getProductType() + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%05d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("井盖状态监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + String wellCode4 = String.format("%04x", i); + if (wellExcludeCode.equals(wellCode4)) { + continue; + } + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + wellCode4; + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("灯箱控制器".equals(deviceType.getProductName()) || + "单灯控制器(单路)".equals(deviceType.getProductName()) || + "单灯控制器(双路)".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("数据集中器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("有害气体监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型WS2000X- 年份XX 批次序号XXXX 编号XXX + String devCode = deviceType.getProductType() + + getYearFmt() + + String.format("%04d", batch.getBatchNumber()) + + String.format("%03d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } + //其他设备类型分lora和非lora版本 + else { + if (loraDevice.equals(deviceType.getCommunicationVersion())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } else { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return deviceList; + } + + + public static Map validate(ProductDeviceType deviceType, List batches, Task task) { + Map resultMap = new HashMap<>(); + boolean success = true; + String msg = ""; + long devSum = null != task ? task.getDevcount() : 0; + long devcount = 0, batchCountMax; + batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? + 0 : devTypeCountHashMap.get(deviceType.getProductName()); + if (0 == batchCountMax) { + if (deviceType.getProductModel().indexOf(loraDevice) + == deviceType.getProductModel().length() - 1) { + batchCountMax = 255; + } else { + batchCountMax = 9999; + } + } + for (Batch batch : batches) { + if (batch.getBatchCount() > batchCountMax) { + success = false; + msg = batch.getBatchNumber() + "批次号数量超过了最大范围" + batchCountMax; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + devcount += batch.getBatchCount(); + } + if (devcount != devSum) { + return returnMsg(); + } + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + + public static Map returnMsg() { + Map resultMap = new HashMap<>(); + resultMap.put("success", false); + resultMap.put("msg", "所有批次数量之和与任务中设备数量不一致!"); + return resultMap; + } + + /** + * 获取编码中的年份 + * + * @return + */ + public static String getYearFmt() { + + return DateUtil.format(new Date(), "yyyy").substring(2); + } + + + /** + * 比较2个map + * + * @param batchMap + * @param batchMap1 + * @return + */ + public static boolean equalMap(Map batchMap, Map batchMap1) { + if (batchMap.size() != batchMap1.size()) { + return false; + } + Iterator iter1 = batchMap.keySet().iterator(); + while (iter1.hasNext()) { + Long map1key = iter1.next(); + String map1value = batchMap.get(map1key).toString(); + String map2value = batchMap1.get(map1key).toString(); + if (!map1value.equals(map2value)) { + return false; + } + } + return true; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java new file mode 100644 index 0000000..33c3535 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java @@ -0,0 +1,43 @@ +package com.casic.missiles.modular.system.util; + +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; + +public class FileUtil { + public static File createFile(String path) throws IOException { + File file = new File(path); + if (!file.exists()) { + file.getParentFile().mkdirs(); + file.createNewFile(); + } + return file; + } + + + public static void downloadLocalFile(HttpServletResponse response,String path, String fileName) throws IOException { + File file = new File(path); + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", "attachment; filename=\"" + URLEncoder.encode(fileName, "UTF-8") + "\""); + response.setContentLength((int) file.length()); + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java new file mode 100644 index 0000000..341d3d1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.task.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.task.service.IBatchService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 批次控制器 + * + * @author dev + * @Date 2020-03-27 15:29:55 + */ +@Controller +@RequestMapping("/batch") +public class BatchController extends BaseController { + + + @Autowired + private IBatchService batchService; + + + /** + * 获取批次列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return batchService.selectList(null); + } + + /** + * 获取批次分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = batchService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增批次并生成设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + @Transactional + public Object add(@RequestBody List batches, Task task) { + + return batchService.addBatchAndDevices(batches,task); + + } + + /** + * 删除批次 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String batchId) { + batchService.deleteById(batchId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("batchIds") List batchIds) { + batchService.deleteBatchIds(batchIds); + return ResponseData.success(); + } + + /** + * 修改批次 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Batch batch) { + batchService.updateById(batch); + return ResponseData.success(); + } + + + /** + * 根据设备类型id + * 查找批次号 + */ + @RequestMapping(value = "/getBatchNumber") + @ResponseBody + public Object getBatchNumber(Long devtypeId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.orderBy("id", false); + Batch batch = batchService.selectOne(entityWrapper); + return ResponseData.success(200, "", batch != null ? batch.getBatchNumber() + 1 : 1); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java new file mode 100644 index 0000000..f463168 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java @@ -0,0 +1,102 @@ +package com.casic.missiles.modular.task.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * 任务控制器 + * + * @author dev + * @Date 2020-03-27 15:28:26 + */ +@Controller +@RequestMapping("/task") +public class TaskController extends BaseController { + + + @Autowired + private ITaskService taskService; + + + /** + * 获取任务列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return taskService.selectList(null); + } + + /** + * 获取任务分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = taskService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增任务 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + taskService.insert(task); + return ResponseData.success(); + } + + /** + * 删除任务 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String taskId) { + taskService.deleteById(taskId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("taskIds") List taskIds) { + taskService.deleteBatchIds(taskIds); + return ResponseData.success(); + } + + /** + * 修改任务 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + taskService.updateById(task); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java new file mode 100644 index 0000000..04c7ef8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.task.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IBatchService extends IService { + + /** + * 添加批次和生成设备 + * @param batches + * @param task + * @return + */ + ResponseData addBatchAndDevices(List batches, Task task); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java new file mode 100644 index 0000000..50e1d37 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.task.service; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface ITaskService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java new file mode 100644 index 0000000..a435e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dao.BatchMapper; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.DeviceUtil; +import com.casic.missiles.modular.task.service.IBatchService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class BatchServiceImpl extends ServiceImpl implements IBatchService { + + @Autowired + private IProductDeviceTypeService deviceTypeService; + @Autowired + private IDeviceService deviceService; + + @Transactional(rollbackFor=Exception.class) + @Override + public ResponseData addBatchAndDevices(List batches, Task task) { + //提交前先验证是否已经存在,若存在且批次号或每批数量改变先删除 + try { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("task_id", task.getTaskId()); + List batchList = this.selectList(entityWrapper); + Map batchMap= new HashMap<>(); + Map batchMap1= new HashMap<>(); + List batchIdlist = new ArrayList<>(); + for (Batch batch : batches) { + batchMap.put(batch.getBatchNumber(),batch.getBatchCount()); + batch.setTaskId(task.getTaskId()); + batch.setDevtypeId(task.getDevtypeId()); + batchIdlist.add(batch.getId()); + } + for (Batch batch : batchList) { + batchMap1.put(batch.getBatchNumber(),batch.getBatchCount()); + } + + //若批次号和数量不变只更新批次表 + if (DeviceUtil.equalMap(batchMap, batchMap1)) { + this.insertOrUpdateBatch(batches); + } + //若批次号和数量更新,更新设备表(删除批次相关的设备后,写入新的设备) + else { + + //验证设备数量是否合格 + ProductDeviceType deviceType = deviceTypeService.selectDeviceTypeByModel(task.getDevmodeId()); + Map resultMap = DeviceUtil.validate(deviceType, batches, task); + if (!Boolean.valueOf(resultMap.get("success").toString())) { + return ResponseData.error(400, resultMap.get("msg").toString()); + } + //删除批次 + EntityWrapper batchEntityWrapper = new EntityWrapper<>(); + batchEntityWrapper.eq("task_id", task.getTaskId()); + this.delete(batchEntityWrapper); + //删除设备 + EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); + deviceEntityWrapper.in("batch_id", batchIdlist); + deviceEntityWrapper.eq("devtype_id",task.getDevtypeId()); + deviceService.delete(deviceEntityWrapper); + + //写入批次 + this.insertBatch(batches); + //写入设备 + List deviceList = DeviceUtil.createDevCodes(deviceType, batches); + deviceService.insertBatch(deviceList); + } + } catch (Exception e) { + e.printStackTrace(); + } + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java new file mode 100644 index 0000000..fac60bb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.dao.TaskMapper; +import com.casic.missiles.modular.task.service.ITaskService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class TaskServiceImpl extends ServiceImpl implements ITaskService { + +} diff --git a/casic-web/pom.xml b/casic-web/pom.xml new file mode 100644 index 0000000..f9f1c84 --- /dev/null +++ b/casic-web/pom.xml @@ -0,0 +1,300 @@ + + + 4.0.0 + + com.casic + casic-product-device + ../pom.xml + 1.0.0-SNAPSHOT + + casic-web + ${pro.version} + jar + casic-web + casic web启动入口 + + + + dev + + true + + + dev + true + 3600 + 3600 + + + + + test + + test + false + 180 + 180 + + + + + prod + + prod + true + 3600 + 3600 + + + + + + + + + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-admin-core + ${casic.version} + + + com.casic + casic-admin-area + ${casic.version} + + + + + + + + + + com.casic + casic-device + ${pro.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-cache + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + org.springframework.boot + spring-boot-devtools + true + + + + + + org.apache.shiro + shiro-core + + + slf4j-api + org.slf4j + + + + + org.apache.shiro + shiro-spring + + + org.apache.shiro + shiro-ehcache + + + slf4j-api + org.slf4j + + + + + org.ehcache + ehcache + ${ehcache.version} + + + + commons-io + commons-io + + + com.github.penggle + kaptcha + + + com.google.zxing + core + + + com.ibeetl + beetl + + + org.apache.commons + commons-lang3 + + + com.oracle + ojdbc6 + ${oracle.version} + + + org.codehaus.groovy + groovy-all + true + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + org.apache.maven.plugins + maven-jar-plugin + + + + /config/** + **/MockController.class + + + + + + + + + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + maven-assembly-plugin + + + false + + src/main/build/package.xml + + + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-resources-plugin + 2.6 + + + ${resource.delimiter} + + true + + + + copy-resources + validate + + copy-resources + + + ${project.build.outputDirectory} + + + + src/main/resources + true + + + + + + + + + + src/main/webapp + + + src/main/resources + + + src/main/java + + **/*.xml + + true + + + + + diff --git "a/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" "b/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" new file mode 100644 index 0000000..9656df2 --- /dev/null +++ "b/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" @@ -0,0 +1,4 @@ +@echo off +title 智慧城管 +java -jar guns-web-1.0.0-SNAPSHOT.jar +@pause diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java new file mode 100644 index 0000000..4670df3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 集中器相关日志 + */ +public class ProjectDict extends AbstractDictMap { + public static final String PROJECT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + @Override + public void init() { + put("projectName","项目名称"); + put("projectSimpleName","项目简称"); + put("projectManager","项目经理"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java new file mode 100644 index 0000000..7981a17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dto; + +/** + * 用于设备类型展示 + * @author test203 + * @date 2020-04-03 + */ +public class DeviceTypeDto { + private Long id; + private String productName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java new file mode 100644 index 0000000..f254585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java @@ -0,0 +1,361 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.math.BigDecimal; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; + +/** + *

+ * 管理员表 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@TableName("sys_user") +public class Account extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + /** + * 头像 + */ + private String avatar; + /** + * 账号 + */ + private String account; + /** + * 密码 + */ + private String password; + /** + * md5密码盐 + */ + private String salt; + /** + * 名字 + */ + private String name; + /** + * 生日 + */ + private Date birthday; + /** + * 性别(1:男 2:女) + */ + private String sex; + /** + * 电子邮件 + */ + private String email; + /** + * 电话 + */ + private String phone; + /** + * 角色id + */ + private String roleid; + /** + * 部门id + */ + private Long deptid; + /** + * 状态(1:启用 2:冻结 3:删除) + */ + private String status; + /** + * 创建时间 + */ + private Date createtime; + /** + * 保留字段 + */ + private Integer version; + private String targetid; + private String targetname; + @TableField("password_sync") + private String passwordSync; + @TableField("IS_SYNC") + private Integer isSync; + private String simplename; + /** + * 同步组织ID + */ + @TableField("TARGET_DEPTID_SYNC") + private String targetDeptidSync; + @TableField("LOGIN_IP") + private String loginIp; + @TableField("LOGIN_MAC") + private String loginMac; + /** + * 最后在线时间 + */ + @TableField("LAST_TIME") + private Date lastTime; + /** + * 经度 + */ + @TableField("POSITION_LNG") + private BigDecimal positionLng; + /** + * 纬度 + */ + @TableField("POSITION_LAT") + private BigDecimal positionLat; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt() { + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getRoleid() { + return roleid; + } + + public void setRoleid(String roleid) { + this.roleid = roleid; + } + + public Long getDeptid() { + return deptid; + } + + public void setDeptid(Long deptid) { + this.deptid = deptid; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + public String getTargetid() { + return targetid; + } + + public void setTargetid(String targetid) { + this.targetid = targetid; + } + + public String getTargetname() { + return targetname; + } + + public void setTargetname(String targetname) { + this.targetname = targetname; + } + + public String getPasswordSync() { + return passwordSync; + } + + public void setPasswordSync(String passwordSync) { + this.passwordSync = passwordSync; + } + + public Integer getIsSync() { + return isSync; + } + + public void setIsSync(Integer isSync) { + this.isSync = isSync; + } + + public String getSimplename() { + return simplename; + } + + public void setSimplename(String simplename) { + this.simplename = simplename; + } + + public String getTargetDeptidSync() { + return targetDeptidSync; + } + + public void setTargetDeptidSync(String targetDeptidSync) { + this.targetDeptidSync = targetDeptidSync; + } + + public String getLoginIp() { + return loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getLoginMac() { + return loginMac; + } + + public void setLoginMac(String loginMac) { + this.loginMac = loginMac; + } + + public Date getLastTime() { + return lastTime; + } + + public void setLastTime(Date lastTime) { + this.lastTime = lastTime; + } + + public BigDecimal getPositionLng() { + return positionLng; + } + + public void setPositionLng(BigDecimal positionLng) { + this.positionLng = positionLng; + } + + public BigDecimal getPositionLat() { + return positionLat; + } + + public void setPositionLat(BigDecimal positionLat) { + this.positionLat = positionLat; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", avatar=" + avatar + + ", account=" + account + + ", password=" + password + + ", salt=" + salt + + ", name=" + name + + ", birthday=" + birthday + + ", sex=" + sex + + ", email=" + email + + ", phone=" + phone + + ", roleid=" + roleid + + ", deptid=" + deptid + + ", status=" + status + + ", createtime=" + createtime + + ", version=" + version + + ", targetid=" + targetid + + ", targetname=" + targetname + + ", passwordSync=" + passwordSync + + ", isSync=" + isSync + + ", simplename=" + simplename + + ", targetDeptidSync=" + targetDeptidSync + + ", loginIp=" + loginIp + + ", loginMac=" + loginMac + + ", lastTime=" + lastTime + + ", positionLng=" + positionLng + + ", positionLat=" + positionLat + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java new file mode 100644 index 0000000..81516b7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -0,0 +1,110 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_batch") +public class Batch extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_number") + private Long batchNumber; + @TableField("batch_count") + private Long batchCount; + @TableField("contract_id") + private Long contractId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("task_id") + private Long taskId; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(Long batchNumber) { + this.batchNumber = batchNumber; + } + + public Long getBatchCount() { + return batchCount; + } + + public void setBatchCount(Long batchCount) { + this.batchCount = batchCount; + } + + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Batch{" + + "id=" + id + + ", batchNumber=" + batchNumber + + ", batchCount=" + batchCount + + ", contractId=" + contractId + + ", taskId=" + taskId + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java new file mode 100644 index 0000000..893a1ed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -0,0 +1,186 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_contract") +public class Contract extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("contract_number") + private String contractNumber; + @TableField("contract_name") + private String contractName; + @TableField("contract_content") + private String contractContent; + @TableField("contract_amount") + private String contractAmount; + @TableField("external_project_apply") + private String externalProjectApply; + @TableField("external_contract_apply") + private String externalContractApply; + @TableField("principal") + private String principal; + @TableField("external_check_apply") + private String externalCheckApply; + @TableField("contract_factory") + private String contractFactory; + @TableField("createtime") + private Date createtime; + @TableField(exist = false) + private String paymentStatus; + @TableField(exist = false) + private String netFlow; + @TableField("deptid") + private String deptid; + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getContractName() { + return contractName; + } + + public void setContractName(String contractName) { + this.contractName = contractName; + } + + public String getContractContent() { + return contractContent; + } + + public void setContractContent(String contractContent) { + this.contractContent = contractContent; + } + + public String getContractAmount() { + return contractAmount; + } + + public void setContractAmount(String contractAmount) { + this.contractAmount = contractAmount; + } + + public String getExternalProjectApply() { + return externalProjectApply; + } + + public void setExternalProjectApply(String externalProjectApply) { + this.externalProjectApply = externalProjectApply; + } + + public String getExternalContractApply() { + return externalContractApply; + } + + public void setExternalContractApply(String externalContractApply) { + this.externalContractApply = externalContractApply; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalCheckApply() { + return externalCheckApply; + } + + public void setExternalCheckApply(String externalCheckApply) { + this.externalCheckApply = externalCheckApply; + } + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public String getContractFactory() { + return contractFactory; + } + + public void setContractFactory(String contractFactory) { + this.contractFactory = contractFactory; + } + + public String getNetFlow() { + return netFlow; + } + + public void setNetFlow(String netFlow) { + this.netFlow = netFlow; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Contract{" + + "contractNumber=" + contractNumber + + ", contractName=" + contractName + + ", contractContent=" + contractContent + + ", contractAmount=" + contractAmount + + ", externalProjectApply=" + externalProjectApply + + ", externalContractApply=" + externalContractApply + + ", principal=" + principal + + ", id=" + id + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java new file mode 100644 index 0000000..8718d91 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -0,0 +1,150 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_device") +public class Device extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_id") + private Long batchId; + private String devcode; + @TableField("devtype_id") + private Long devtypeId; + @TableField("is_send") + private String isSend; + private String longitude; + private String latitude; + @TableField("install_height") + private String installHeight; + private String iccid; + private Long imei; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public Long getImei() { + return imei; + } + + public void setImei(Long imei) { + this.imei = imei; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Device{" + + "id=" + id + + ", batchId=" + batchId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", isSend=" + isSend + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", installHeight=" + installHeight + + ", iccid=" + iccid + + ", imei=" + imei + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java new file mode 100644 index 0000000..870c36f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_payments") +public class Payments extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @TableField("paytime") + private Date paytime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getPaytime() { + return paytime; + } + + public void setPaytime(Date paytime) { + this.paytime = paytime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Payments{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", paytime=" + paytime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java new file mode 100644 index 0000000..ae6b585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -0,0 +1,285 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_device_type") +public class ProductDeviceType extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 产品名称 + */ + @TableField("product_name") + private String productName; + /** + * 产品型号 + */ + @TableField("product_model") + private String productModel; + + /** + * 通讯版本号 + */ + @TableField("communication_version") + private String communicationVersion; + + /** + * 产品类型 + */ + @TableField("product_type") + private String productType; + + /** + * 整机版本号 + */ + @TableField("machine_version") + private String machineVersion; + /** + * 硬件版本号 + */ + @TableField("hardware_version") + private String hardwareVersion; + /** + * 软件版本号 + */ + @TableField("software_version") + private String softwareVersion; + /** + * 设计归档 + */ + @TableField("design_archive") + private String designArchive; + /** + * 批产归档 + */ + @TableField("batch_filing") + private String batchFiling; + /** + * 状态 + */ + @TableField("status") + private Integer status; + /** + * 性能指标 + */ + @TableField("kpi") + private String kpi; + /** + * 批产负责人 + */ + @TableField("principal") + private String principal; + /** + * 定额汇总表 + */ + @TableField("quota_summary") + private String quotaSummary; + + /** + * 权属部门 + */ + @TableField("deptid") + private String deptid; + + /** + * 备注 + */ + @TableField("descn") + private String descn; + + @TableField("createtime") + private Date createtime; + + + @TableField(exist = false) + private String statusFmt; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } + + public String getMachineVersion() { + return machineVersion; + } + + public void setMachineVersion(String machineVersion) { + this.machineVersion = machineVersion; + } + + public String getHardwareVersion() { + return hardwareVersion; + } + + public void setHardwareVersion(String hardwareVersion) { + this.hardwareVersion = hardwareVersion; + } + + public String getSoftwareVersion() { + return softwareVersion; + } + + public void setSoftwareVersion(String softwareVersion) { + this.softwareVersion = softwareVersion; + } + + public String getDesignArchive() { + return designArchive; + } + + public void setDesignArchive(String designArchive) { + this.designArchive = designArchive; + } + + public String getBatchFiling() { + return batchFiling; + } + + public void setBatchFiling(String batchFiling) { + this.batchFiling = batchFiling; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getKpi() { + return kpi; + } + + public void setKpi(String kpi) { + this.kpi = kpi; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public String getQuotaSummary() { + return quotaSummary; + } + + public void setQuotaSummary(String quotaSummary) { + this.quotaSummary = quotaSummary; + } + + public String getStatusFmt() { + return statusFmt; + } + + public void setStatusFmt(String statusFmt) { + this.statusFmt = statusFmt; + } + + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getProductType() { + return productType; + } + + public void setProductType(String productType) { + this.productType = productType; + } + + public String getCommunicationVersion() { + return communicationVersion; + } + + public void setCommunicationVersion(String communicationVersion) { + this.communicationVersion = communicationVersion; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductDeviceType{" + + "id=" + id + + ", productName=" + productName + + ", productModel=" + productModel + + ", machineVersion=" + machineVersion + + ", hardwareVersion=" + hardwareVersion + + ", softwareVersion=" + softwareVersion + + ", designArchive=" + designArchive + + ", batchFiling=" + batchFiling + + ", status=" + status + + ", kpi=" + kpi + + ", principal=" + principal + + ", quotaSummary=" + quotaSummary + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java new file mode 100644 index 0000000..b0fd924 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java @@ -0,0 +1,187 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_factory_information") +public class ProductFactoryInformation extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 厂家名称 + */ + @TableField("name") + private String name; + /** + * 厂家联系人 + */ + @TableField("person_name") + private String personName; + /** + * 地址 + */ + @TableField("address") + private String address; + /** + * 电话 + */ + @TableField("phone") + private String phone; + /** + * 开户行 + */ + @TableField("bank") + private String bank; + /** + * 税号 + */ + @TableField("tax_number") + private String taxNumber; + /** + * 在产设备 + */ + @TableField("producting_device") + private String productingDevice; + /** + * 设备报价表 + */ + @TableField("equipment_quotation") + private String equipmentQuotation; + + @TableField("createtime") + private Date createtime =new Date(); + + @TableField("deptid") + private String deptid; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPersonName() { + return personName; + } + + public void setPersonName(String personName) { + this.personName = personName; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getBank() { + return bank; + } + + public void setBank(String bank) { + this.bank = bank; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getProductingDevice() { + return productingDevice; + } + + public void setProductingDevice(String productingDevice) { + this.productingDevice = productingDevice; + } + + public String getEquipmentQuotation() { + return equipmentQuotation; + } + + public void setEquipmentQuotation(String equipmentQuotation) { + this.equipmentQuotation = equipmentQuotation; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductFactoryInformation{" + + "id=" + id + + ", name=" + name + + ", personName=" + personName + + ", address=" + address + + ", phone=" + phone + + ", bank=" + bank + + ", taxNumber=" + taxNumber + + ", productingDevice=" + productingDevice + + ", equipmentQuotation=" + equipmentQuotation + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java new file mode 100644 index 0000000..00cbc92 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -0,0 +1,99 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@TableName("product_project") +public class Project extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_name") + private String projectName; + @TableField("project_simple_name") + private String projectSimpleName; + @TableField("project_manager") + private String projectManager; + private String descn; + @TableField("createtime") + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getProjectManager() { + return projectManager; + } + + public void setProjectManager(String projectManager) { + this.projectManager = projectManager; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Project{" + + "id=" + id + + ", projectName=" + projectName + + ", projectSimpleName=" + projectSimpleName + + ", projectManager=" + projectManager + + ", descn=" + descn + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java new file mode 100644 index 0000000..658c2e1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java @@ -0,0 +1,126 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_reimburse") +public class Reimburse extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mi:ss") + @TableField("reimburse_time") + private Date reimburseTime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getReimburseTime() { + return reimburseTime; + } + + public void setReimburseTime(Date reimburseTime) { + this.reimburseTime = reimburseTime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Reimburse{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", reimburseTime=" + reimburseTime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java new file mode 100644 index 0000000..987efa7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java @@ -0,0 +1,141 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_task") +public class Task extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_id") + private Long projectId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("devmode_id") + private String devmodeId; + private Long devcount; + @TableField("delivery_time") + private Date deliveryTime; + private String demand; + private Date createtime; + @TableField(exist = false) + private String deliveryTimeFmt; + + @TableField(exist = false) + private Long taskId; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getProjectId() { + return projectId; + } + + public void setProjectId(Long projectId) { + this.projectId = projectId; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDevmodeId() { + return devmodeId; + } + + public void setDevmodeId(String devmodeId) { + this.devmodeId = devmodeId; + } + + public Long getDevcount() { + return devcount; + } + + public void setDevcount(Long devcount) { + this.devcount = devcount; + } + + public Date getDeliveryTime() { + return deliveryTime; + } + + public void setDeliveryTime(Date deliveryTime) { + this.deliveryTime = deliveryTime; + } + + public String getDemand() { + return demand; + } + + public void setDemand(String demand) { + this.demand = demand; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeliveryTimeFmt() { + return deliveryTimeFmt; + } + + public void setDeliveryTimeFmt(String deliveryTimeFmt) { + this.deliveryTimeFmt = deliveryTimeFmt; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Task{" + + "id=" + id + + ", projectId=" + projectId + + ", devtypeId=" + devtypeId + + ", devmodeId=" + devmodeId + + ", devcount=" + devcount + + ", deliveryTime=" + deliveryTime + + ", demand=" + demand + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java new file mode 100644 index 0000000..7785de5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface IAccountService extends IService { + + /** + * 根据用户名查用户 + * @param userName + * @return + */ + Account findUserByName(String userName); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java new file mode 100644 index 0000000..d8b5e87 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IContractService extends IService { + List selectPageList(Page page, String keyword1, String keyword2, String keyword3); + List reportExport(String keyword1, String keyword2, String keyword3); + void importContract( List contracts); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java new file mode 100644 index 0000000..0f2d6e0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IPaymentsService extends IService { + + boolean validate(Long proId,String money,String reorder); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java new file mode 100644 index 0000000..71490df --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -0,0 +1,62 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductDeviceTypeService extends IService { + + /** + * 批量导入设备类型列表 + * @param results + */ + void importDeviceType(List results); + + /** + * 导出列表 + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List reportExport(String keyword1,String keyword2,String keyword3); + + + /** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectPageDataScope(DataScope dataScope, Page page, + String keyword1, String keyword2, String keyword3); + + /** + * 获取在产的设备类型 + * @return + */ + List selectDeviceTypeList(); + + /** + * 根据产品型号获取产品 + * @param deviceModel + * @return + */ + ProductDeviceType selectDeviceTypeByModel(String deviceModel); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java new file mode 100644 index 0000000..455f60a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductFactoryInformationService extends IService { + /** + * 根据条件导出列表 + * @param keyword1 + * @param keyword2 + * @return + */ + List reportExport(String keyword1, String keyword2); + + + /** + * 导入 + * @param results + */ + void importDeviceType(List results); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java new file mode 100644 index 0000000..3c27bd1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface IProjectService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java new file mode 100644 index 0000000..ee0a55c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IReimburseService extends IService { + boolean validate(Long proId,String money,String reorder); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java new file mode 100644 index 0000000..09ce653 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.dao.AccountMapper; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.stereotype.Service; + +/** + *

+ * 管理员表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@Service +public class AccountServiceImpl extends ServiceImpl implements IAccountService { + + @Override + public Account findUserByName(String userName) { + + EntityWrapper userEntityWrapper = new EntityWrapper<>(); + userEntityWrapper.eq("name",userName); + userEntityWrapper.eq("status","1"); + return this.selectOne(userEntityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java new file mode 100644 index 0000000..dd04da0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java @@ -0,0 +1,138 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.shiro.ShiroUser; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ContractMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IPaymentsService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ContractServiceImpl extends ServiceImpl implements IContractService { + @Autowired + private IPaymentsService paymentsService; + @Autowired + private ICommonPermissionService permissionService; + @Autowired + private IAccountService userService; + @Value("${casic.producerName}") + private String producerName; + @Value("${casic.repairName}") + private String repairName; + + @Override + public List selectPageList(Page page, String keyword1, String keyword2, String keyword3) { + +// EntityWrapper query = new EntityWrapper<>(); +// if (ToolUtil.isNotEmpty(keyword1)) { +// query.like("contract_factory", keyword1); +// } +// if (ToolUtil.isNotEmpty(keyword3)) { +// query.like("contract_number", keyword3); +// } +// List contractList = this.selectPage(page, query).getRecords(); +// contractList.forEach(contract -> { +// contract.setPaymentStatus(getPaymentStatus(contract)); +// String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" +// + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" +// + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); +// contract.setNetFlow(netFlowStr); +// +// }); +// return contractList; + + + List contractList = new ArrayList<>(); + DataScope dataScope = permissionService.getCurrUserDataScope(); + ShiroUser currentUser = permissionService.getCurrLoginUser(); + if (currentUser.getRoleTips().contains(producerName) || currentUser.getRoleTips().contains(repairName)) { + contractList = this.baseMapper.findContractList(dataScope,page, currentUser.getName(), keyword1, keyword2, keyword3); + } else { + contractList = this.baseMapper.findContractList(dataScope,page, "", keyword1, keyword2, keyword3); + } + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + + }); + return contractList; + } + + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + + + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("contractFactory", keyword1); + } + if (ToolUtil.isNotEmpty(keyword3)) { + query.like("contract_number", keyword3); + } + + List contractList = this.selectList(query); + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); +// permissionService.findInDictByCode("applyStatus") + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + }); + + return contractList; + } + + @Override + public void importContract(List contracts) { + contracts.forEach(contract -> { + EntityWrapper query = new EntityWrapper<>(); + query.eq("contract_number", contract.getContractNumber()); + this.delete(query); + Account user = userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); + this.insert(contract); + }); + } + + public String getPaymentStatus(Contract contract) { + Map paraMap = new HashMap<>(); + paraMap.put("pro_id", contract.getId()); + List paymentsList = paymentsService.selectByMap(paraMap); + float sum = 0; + for (Payments payments : paymentsList) { + sum = sum + (ToolUtil.isNotEmpty(payments.getMoney()) ? Float.parseFloat(payments.getMoney()) : 0); + } + DecimalFormat df = new DecimalFormat("0"); + return sum + "," + df.format(100 * sum / Float.valueOf(contract.getContractAmount())) + "%"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java new file mode 100644 index 0000000..0c125d8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PaymentsMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class PaymentsServiceImpl extends ServiceImpl implements IPaymentsService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money,String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List paymentsList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Payments payments : paymentsList) { + if(reorder.equals(payments.getReorder())) continue; + total += ToolUtil.isNotEmpty(payments.getMoney()) ? + Long.valueOf(payments.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java new file mode 100644 index 0000000..ac6d447 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductDeviceTypeMapper; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.swing.text.html.parser.Entity; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductDeviceTypeServiceImpl extends ServiceImpl implements IProductDeviceTypeService { + + @Autowired + private ICommonPermissionService permissionService; + + @Transactional(rollbackFor = Exception.class) + @Override + public void importDeviceType(List results) { + + for (ProductDeviceType productDeviceType : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + this.baseMapper.delete(wrapper); + this.baseMapper.insert(productDeviceType); + } + } + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + wrapper.like("principal", keyword3); + } + List productDeviceTypes = this.selectList(wrapper); + for (ProductDeviceType productDeviceType : productDeviceTypes) { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + } + return productDeviceTypes; + } + + @Override + public List selectPageDataScope(DataScope dataScope, Page page, String keyword1, String keyword2, String keyword3) { + + List productDeviceTypeList = this.baseMapper.selectDataScopePage(dataScope, page, keyword1, keyword2, keyword3); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + return productDeviceTypeList; + + } + + @Override + public List selectDeviceTypeList() { + return this.baseMapper.selectDeviceTypeList(); + } + + + @Override + public ProductDeviceType selectDeviceTypeByModel(String deviceModel) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("product_model",deviceModel); + return this.selectOne(entityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java new file mode 100644 index 0000000..efe4410 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java @@ -0,0 +1,50 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductFactoryInformationMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductFactoryInformationServiceImpl extends ServiceImpl implements IProductFactoryInformationService { + + @Override + public List reportExport(String keyword1, String keyword2) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.like("producting_device", keyword2); + } + List productFactoryInformations = this.selectList(wrapper); + + return productFactoryInformations; + } + + + @Transactional(rollbackFor=Exception.class) + @Override + public void importDeviceType(List results) { + for (ProductFactoryInformation productFactoryInformation : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + delete(wrapper); + this.baseMapper.insert(productFactoryInformation); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java new file mode 100644 index 0000000..34655b0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.dao.ProjectMapper; +import com.casic.missiles.modular.system.service.IProjectService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@Service +public class ProjectServiceImpl extends ServiceImpl implements IProjectService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java new file mode 100644 index 0000000..5e8b77b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java @@ -0,0 +1,48 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.dao.ReimburseMapper; +import com.casic.missiles.modular.system.service.IReimburseService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ReimburseServiceImpl extends ServiceImpl implements IReimburseService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money, String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List reimburseList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Reimburse reimburse : reimburseList) { + if (reorder.equals(reimburse.getReorder())) continue; + total += ToolUtil.isNotEmpty(reimburse.getMoney()) ? + Long.valueOf(reimburse.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java new file mode 100644 index 0000000..d5ffadb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java @@ -0,0 +1,235 @@ +package com.casic.missiles.modular.system.util; + +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; + +import java.util.*; + +/** + * @author test203 + * @since 2020-04-06 + */ +public class DeviceUtil { + private final static String factoryCode = "20"; + private final static String wellExcludeCode = "4120"; + private final static String loraDevice = "A"; + private static Map devTypeCountHashMap = new HashMap(); + + static { + devTypeCountHashMap.put("电子标识器", 99999L); + devTypeCountHashMap.put("井盖状态监测仪", 65534L); + devTypeCountHashMap.put("灯箱控制器", 65535L); + devTypeCountHashMap.put("单灯控制器(单路)", 65535L); + devTypeCountHashMap.put("单灯控制器(双路)", 65535L); + devTypeCountHashMap.put("数据集中器", 255L); + devTypeCountHashMap.put("有害气体监测仪", 999L); + } + + public static List createDevCodes(ProductDeviceType deviceType, List batches) { + List deviceList = new ArrayList<>(); + try { + if ("电子标识器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 年份XX 批次号XX 编号XXXXX + String devCode = deviceType.getProductType() + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%05d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("井盖状态监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + String wellCode4 = String.format("%04x", i); + if (wellExcludeCode.equals(wellCode4)) { + continue; + } + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + wellCode4; + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("灯箱控制器".equals(deviceType.getProductName()) || + "单灯控制器(单路)".equals(deviceType.getProductName()) || + "单灯控制器(双路)".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("数据集中器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("有害气体监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型WS2000X- 年份XX 批次序号XXXX 编号XXX + String devCode = deviceType.getProductType() + + getYearFmt() + + String.format("%04d", batch.getBatchNumber()) + + String.format("%03d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } + //其他设备类型分lora和非lora版本 + else { + if (loraDevice.equals(deviceType.getCommunicationVersion())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } else { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return deviceList; + } + + + public static Map validate(ProductDeviceType deviceType, List batches, Task task) { + Map resultMap = new HashMap<>(); + boolean success = true; + String msg = ""; + long devSum = null != task ? task.getDevcount() : 0; + long devcount = 0, batchCountMax; + batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? + 0 : devTypeCountHashMap.get(deviceType.getProductName()); + if (0 == batchCountMax) { + if (deviceType.getProductModel().indexOf(loraDevice) + == deviceType.getProductModel().length() - 1) { + batchCountMax = 255; + } else { + batchCountMax = 9999; + } + } + for (Batch batch : batches) { + if (batch.getBatchCount() > batchCountMax) { + success = false; + msg = batch.getBatchNumber() + "批次号数量超过了最大范围" + batchCountMax; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + devcount += batch.getBatchCount(); + } + if (devcount != devSum) { + return returnMsg(); + } + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + + public static Map returnMsg() { + Map resultMap = new HashMap<>(); + resultMap.put("success", false); + resultMap.put("msg", "所有批次数量之和与任务中设备数量不一致!"); + return resultMap; + } + + /** + * 获取编码中的年份 + * + * @return + */ + public static String getYearFmt() { + + return DateUtil.format(new Date(), "yyyy").substring(2); + } + + + /** + * 比较2个map + * + * @param batchMap + * @param batchMap1 + * @return + */ + public static boolean equalMap(Map batchMap, Map batchMap1) { + if (batchMap.size() != batchMap1.size()) { + return false; + } + Iterator iter1 = batchMap.keySet().iterator(); + while (iter1.hasNext()) { + Long map1key = iter1.next(); + String map1value = batchMap.get(map1key).toString(); + String map2value = batchMap1.get(map1key).toString(); + if (!map1value.equals(map2value)) { + return false; + } + } + return true; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java new file mode 100644 index 0000000..33c3535 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java @@ -0,0 +1,43 @@ +package com.casic.missiles.modular.system.util; + +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; + +public class FileUtil { + public static File createFile(String path) throws IOException { + File file = new File(path); + if (!file.exists()) { + file.getParentFile().mkdirs(); + file.createNewFile(); + } + return file; + } + + + public static void downloadLocalFile(HttpServletResponse response,String path, String fileName) throws IOException { + File file = new File(path); + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", "attachment; filename=\"" + URLEncoder.encode(fileName, "UTF-8") + "\""); + response.setContentLength((int) file.length()); + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java new file mode 100644 index 0000000..341d3d1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.task.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.task.service.IBatchService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 批次控制器 + * + * @author dev + * @Date 2020-03-27 15:29:55 + */ +@Controller +@RequestMapping("/batch") +public class BatchController extends BaseController { + + + @Autowired + private IBatchService batchService; + + + /** + * 获取批次列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return batchService.selectList(null); + } + + /** + * 获取批次分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = batchService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增批次并生成设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + @Transactional + public Object add(@RequestBody List batches, Task task) { + + return batchService.addBatchAndDevices(batches,task); + + } + + /** + * 删除批次 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String batchId) { + batchService.deleteById(batchId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("batchIds") List batchIds) { + batchService.deleteBatchIds(batchIds); + return ResponseData.success(); + } + + /** + * 修改批次 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Batch batch) { + batchService.updateById(batch); + return ResponseData.success(); + } + + + /** + * 根据设备类型id + * 查找批次号 + */ + @RequestMapping(value = "/getBatchNumber") + @ResponseBody + public Object getBatchNumber(Long devtypeId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.orderBy("id", false); + Batch batch = batchService.selectOne(entityWrapper); + return ResponseData.success(200, "", batch != null ? batch.getBatchNumber() + 1 : 1); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java new file mode 100644 index 0000000..f463168 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java @@ -0,0 +1,102 @@ +package com.casic.missiles.modular.task.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * 任务控制器 + * + * @author dev + * @Date 2020-03-27 15:28:26 + */ +@Controller +@RequestMapping("/task") +public class TaskController extends BaseController { + + + @Autowired + private ITaskService taskService; + + + /** + * 获取任务列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return taskService.selectList(null); + } + + /** + * 获取任务分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = taskService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增任务 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + taskService.insert(task); + return ResponseData.success(); + } + + /** + * 删除任务 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String taskId) { + taskService.deleteById(taskId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("taskIds") List taskIds) { + taskService.deleteBatchIds(taskIds); + return ResponseData.success(); + } + + /** + * 修改任务 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + taskService.updateById(task); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java new file mode 100644 index 0000000..04c7ef8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.task.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IBatchService extends IService { + + /** + * 添加批次和生成设备 + * @param batches + * @param task + * @return + */ + ResponseData addBatchAndDevices(List batches, Task task); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java new file mode 100644 index 0000000..50e1d37 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.task.service; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface ITaskService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java new file mode 100644 index 0000000..a435e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dao.BatchMapper; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.DeviceUtil; +import com.casic.missiles.modular.task.service.IBatchService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class BatchServiceImpl extends ServiceImpl implements IBatchService { + + @Autowired + private IProductDeviceTypeService deviceTypeService; + @Autowired + private IDeviceService deviceService; + + @Transactional(rollbackFor=Exception.class) + @Override + public ResponseData addBatchAndDevices(List batches, Task task) { + //提交前先验证是否已经存在,若存在且批次号或每批数量改变先删除 + try { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("task_id", task.getTaskId()); + List batchList = this.selectList(entityWrapper); + Map batchMap= new HashMap<>(); + Map batchMap1= new HashMap<>(); + List batchIdlist = new ArrayList<>(); + for (Batch batch : batches) { + batchMap.put(batch.getBatchNumber(),batch.getBatchCount()); + batch.setTaskId(task.getTaskId()); + batch.setDevtypeId(task.getDevtypeId()); + batchIdlist.add(batch.getId()); + } + for (Batch batch : batchList) { + batchMap1.put(batch.getBatchNumber(),batch.getBatchCount()); + } + + //若批次号和数量不变只更新批次表 + if (DeviceUtil.equalMap(batchMap, batchMap1)) { + this.insertOrUpdateBatch(batches); + } + //若批次号和数量更新,更新设备表(删除批次相关的设备后,写入新的设备) + else { + + //验证设备数量是否合格 + ProductDeviceType deviceType = deviceTypeService.selectDeviceTypeByModel(task.getDevmodeId()); + Map resultMap = DeviceUtil.validate(deviceType, batches, task); + if (!Boolean.valueOf(resultMap.get("success").toString())) { + return ResponseData.error(400, resultMap.get("msg").toString()); + } + //删除批次 + EntityWrapper batchEntityWrapper = new EntityWrapper<>(); + batchEntityWrapper.eq("task_id", task.getTaskId()); + this.delete(batchEntityWrapper); + //删除设备 + EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); + deviceEntityWrapper.in("batch_id", batchIdlist); + deviceEntityWrapper.eq("devtype_id",task.getDevtypeId()); + deviceService.delete(deviceEntityWrapper); + + //写入批次 + this.insertBatch(batches); + //写入设备 + List deviceList = DeviceUtil.createDevCodes(deviceType, batches); + deviceService.insertBatch(deviceList); + } + } catch (Exception e) { + e.printStackTrace(); + } + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java new file mode 100644 index 0000000..fac60bb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.dao.TaskMapper; +import com.casic.missiles.modular.task.service.ITaskService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class TaskServiceImpl extends ServiceImpl implements ITaskService { + +} diff --git a/casic-web/pom.xml b/casic-web/pom.xml new file mode 100644 index 0000000..f9f1c84 --- /dev/null +++ b/casic-web/pom.xml @@ -0,0 +1,300 @@ + + + 4.0.0 + + com.casic + casic-product-device + ../pom.xml + 1.0.0-SNAPSHOT + + casic-web + ${pro.version} + jar + casic-web + casic web启动入口 + + + + dev + + true + + + dev + true + 3600 + 3600 + + + + + test + + test + false + 180 + 180 + + + + + prod + + prod + true + 3600 + 3600 + + + + + + + + + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-admin-core + ${casic.version} + + + com.casic + casic-admin-area + ${casic.version} + + + + + + + + + + com.casic + casic-device + ${pro.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-cache + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + org.springframework.boot + spring-boot-devtools + true + + + + + + org.apache.shiro + shiro-core + + + slf4j-api + org.slf4j + + + + + org.apache.shiro + shiro-spring + + + org.apache.shiro + shiro-ehcache + + + slf4j-api + org.slf4j + + + + + org.ehcache + ehcache + ${ehcache.version} + + + + commons-io + commons-io + + + com.github.penggle + kaptcha + + + com.google.zxing + core + + + com.ibeetl + beetl + + + org.apache.commons + commons-lang3 + + + com.oracle + ojdbc6 + ${oracle.version} + + + org.codehaus.groovy + groovy-all + true + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + org.apache.maven.plugins + maven-jar-plugin + + + + /config/** + **/MockController.class + + + + + + + + + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + maven-assembly-plugin + + + false + + src/main/build/package.xml + + + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-resources-plugin + 2.6 + + + ${resource.delimiter} + + true + + + + copy-resources + validate + + copy-resources + + + ${project.build.outputDirectory} + + + + src/main/resources + true + + + + + + + + + + src/main/webapp + + + src/main/resources + + + src/main/java + + **/*.xml + + true + + + + + diff --git "a/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" "b/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" new file mode 100644 index 0000000..9656df2 --- /dev/null +++ "b/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" @@ -0,0 +1,4 @@ +@echo off +title 智慧城管 +java -jar guns-web-1.0.0-SNAPSHOT.jar +@pause diff --git a/casic-web/src/main/build/package.xml b/casic-web/src/main/build/package.xml new file mode 100644 index 0000000..68b7576 --- /dev/null +++ b/casic-web/src/main/build/package.xml @@ -0,0 +1,26 @@ + + + package + + zip + + true + + + src/main/bin + / + + + src/main/resources/config + / + + + ${project.build.directory} + / + + *.jar + + + + + \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java new file mode 100644 index 0000000..4670df3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 集中器相关日志 + */ +public class ProjectDict extends AbstractDictMap { + public static final String PROJECT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + @Override + public void init() { + put("projectName","项目名称"); + put("projectSimpleName","项目简称"); + put("projectManager","项目经理"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java new file mode 100644 index 0000000..7981a17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dto; + +/** + * 用于设备类型展示 + * @author test203 + * @date 2020-04-03 + */ +public class DeviceTypeDto { + private Long id; + private String productName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java new file mode 100644 index 0000000..f254585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java @@ -0,0 +1,361 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.math.BigDecimal; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; + +/** + *

+ * 管理员表 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@TableName("sys_user") +public class Account extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + /** + * 头像 + */ + private String avatar; + /** + * 账号 + */ + private String account; + /** + * 密码 + */ + private String password; + /** + * md5密码盐 + */ + private String salt; + /** + * 名字 + */ + private String name; + /** + * 生日 + */ + private Date birthday; + /** + * 性别(1:男 2:女) + */ + private String sex; + /** + * 电子邮件 + */ + private String email; + /** + * 电话 + */ + private String phone; + /** + * 角色id + */ + private String roleid; + /** + * 部门id + */ + private Long deptid; + /** + * 状态(1:启用 2:冻结 3:删除) + */ + private String status; + /** + * 创建时间 + */ + private Date createtime; + /** + * 保留字段 + */ + private Integer version; + private String targetid; + private String targetname; + @TableField("password_sync") + private String passwordSync; + @TableField("IS_SYNC") + private Integer isSync; + private String simplename; + /** + * 同步组织ID + */ + @TableField("TARGET_DEPTID_SYNC") + private String targetDeptidSync; + @TableField("LOGIN_IP") + private String loginIp; + @TableField("LOGIN_MAC") + private String loginMac; + /** + * 最后在线时间 + */ + @TableField("LAST_TIME") + private Date lastTime; + /** + * 经度 + */ + @TableField("POSITION_LNG") + private BigDecimal positionLng; + /** + * 纬度 + */ + @TableField("POSITION_LAT") + private BigDecimal positionLat; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt() { + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getRoleid() { + return roleid; + } + + public void setRoleid(String roleid) { + this.roleid = roleid; + } + + public Long getDeptid() { + return deptid; + } + + public void setDeptid(Long deptid) { + this.deptid = deptid; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + public String getTargetid() { + return targetid; + } + + public void setTargetid(String targetid) { + this.targetid = targetid; + } + + public String getTargetname() { + return targetname; + } + + public void setTargetname(String targetname) { + this.targetname = targetname; + } + + public String getPasswordSync() { + return passwordSync; + } + + public void setPasswordSync(String passwordSync) { + this.passwordSync = passwordSync; + } + + public Integer getIsSync() { + return isSync; + } + + public void setIsSync(Integer isSync) { + this.isSync = isSync; + } + + public String getSimplename() { + return simplename; + } + + public void setSimplename(String simplename) { + this.simplename = simplename; + } + + public String getTargetDeptidSync() { + return targetDeptidSync; + } + + public void setTargetDeptidSync(String targetDeptidSync) { + this.targetDeptidSync = targetDeptidSync; + } + + public String getLoginIp() { + return loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getLoginMac() { + return loginMac; + } + + public void setLoginMac(String loginMac) { + this.loginMac = loginMac; + } + + public Date getLastTime() { + return lastTime; + } + + public void setLastTime(Date lastTime) { + this.lastTime = lastTime; + } + + public BigDecimal getPositionLng() { + return positionLng; + } + + public void setPositionLng(BigDecimal positionLng) { + this.positionLng = positionLng; + } + + public BigDecimal getPositionLat() { + return positionLat; + } + + public void setPositionLat(BigDecimal positionLat) { + this.positionLat = positionLat; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", avatar=" + avatar + + ", account=" + account + + ", password=" + password + + ", salt=" + salt + + ", name=" + name + + ", birthday=" + birthday + + ", sex=" + sex + + ", email=" + email + + ", phone=" + phone + + ", roleid=" + roleid + + ", deptid=" + deptid + + ", status=" + status + + ", createtime=" + createtime + + ", version=" + version + + ", targetid=" + targetid + + ", targetname=" + targetname + + ", passwordSync=" + passwordSync + + ", isSync=" + isSync + + ", simplename=" + simplename + + ", targetDeptidSync=" + targetDeptidSync + + ", loginIp=" + loginIp + + ", loginMac=" + loginMac + + ", lastTime=" + lastTime + + ", positionLng=" + positionLng + + ", positionLat=" + positionLat + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java new file mode 100644 index 0000000..81516b7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -0,0 +1,110 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_batch") +public class Batch extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_number") + private Long batchNumber; + @TableField("batch_count") + private Long batchCount; + @TableField("contract_id") + private Long contractId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("task_id") + private Long taskId; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(Long batchNumber) { + this.batchNumber = batchNumber; + } + + public Long getBatchCount() { + return batchCount; + } + + public void setBatchCount(Long batchCount) { + this.batchCount = batchCount; + } + + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Batch{" + + "id=" + id + + ", batchNumber=" + batchNumber + + ", batchCount=" + batchCount + + ", contractId=" + contractId + + ", taskId=" + taskId + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java new file mode 100644 index 0000000..893a1ed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -0,0 +1,186 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_contract") +public class Contract extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("contract_number") + private String contractNumber; + @TableField("contract_name") + private String contractName; + @TableField("contract_content") + private String contractContent; + @TableField("contract_amount") + private String contractAmount; + @TableField("external_project_apply") + private String externalProjectApply; + @TableField("external_contract_apply") + private String externalContractApply; + @TableField("principal") + private String principal; + @TableField("external_check_apply") + private String externalCheckApply; + @TableField("contract_factory") + private String contractFactory; + @TableField("createtime") + private Date createtime; + @TableField(exist = false) + private String paymentStatus; + @TableField(exist = false) + private String netFlow; + @TableField("deptid") + private String deptid; + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getContractName() { + return contractName; + } + + public void setContractName(String contractName) { + this.contractName = contractName; + } + + public String getContractContent() { + return contractContent; + } + + public void setContractContent(String contractContent) { + this.contractContent = contractContent; + } + + public String getContractAmount() { + return contractAmount; + } + + public void setContractAmount(String contractAmount) { + this.contractAmount = contractAmount; + } + + public String getExternalProjectApply() { + return externalProjectApply; + } + + public void setExternalProjectApply(String externalProjectApply) { + this.externalProjectApply = externalProjectApply; + } + + public String getExternalContractApply() { + return externalContractApply; + } + + public void setExternalContractApply(String externalContractApply) { + this.externalContractApply = externalContractApply; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalCheckApply() { + return externalCheckApply; + } + + public void setExternalCheckApply(String externalCheckApply) { + this.externalCheckApply = externalCheckApply; + } + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public String getContractFactory() { + return contractFactory; + } + + public void setContractFactory(String contractFactory) { + this.contractFactory = contractFactory; + } + + public String getNetFlow() { + return netFlow; + } + + public void setNetFlow(String netFlow) { + this.netFlow = netFlow; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Contract{" + + "contractNumber=" + contractNumber + + ", contractName=" + contractName + + ", contractContent=" + contractContent + + ", contractAmount=" + contractAmount + + ", externalProjectApply=" + externalProjectApply + + ", externalContractApply=" + externalContractApply + + ", principal=" + principal + + ", id=" + id + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java new file mode 100644 index 0000000..8718d91 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -0,0 +1,150 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_device") +public class Device extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_id") + private Long batchId; + private String devcode; + @TableField("devtype_id") + private Long devtypeId; + @TableField("is_send") + private String isSend; + private String longitude; + private String latitude; + @TableField("install_height") + private String installHeight; + private String iccid; + private Long imei; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public Long getImei() { + return imei; + } + + public void setImei(Long imei) { + this.imei = imei; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Device{" + + "id=" + id + + ", batchId=" + batchId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", isSend=" + isSend + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", installHeight=" + installHeight + + ", iccid=" + iccid + + ", imei=" + imei + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java new file mode 100644 index 0000000..870c36f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_payments") +public class Payments extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @TableField("paytime") + private Date paytime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getPaytime() { + return paytime; + } + + public void setPaytime(Date paytime) { + this.paytime = paytime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Payments{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", paytime=" + paytime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java new file mode 100644 index 0000000..ae6b585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -0,0 +1,285 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_device_type") +public class ProductDeviceType extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 产品名称 + */ + @TableField("product_name") + private String productName; + /** + * 产品型号 + */ + @TableField("product_model") + private String productModel; + + /** + * 通讯版本号 + */ + @TableField("communication_version") + private String communicationVersion; + + /** + * 产品类型 + */ + @TableField("product_type") + private String productType; + + /** + * 整机版本号 + */ + @TableField("machine_version") + private String machineVersion; + /** + * 硬件版本号 + */ + @TableField("hardware_version") + private String hardwareVersion; + /** + * 软件版本号 + */ + @TableField("software_version") + private String softwareVersion; + /** + * 设计归档 + */ + @TableField("design_archive") + private String designArchive; + /** + * 批产归档 + */ + @TableField("batch_filing") + private String batchFiling; + /** + * 状态 + */ + @TableField("status") + private Integer status; + /** + * 性能指标 + */ + @TableField("kpi") + private String kpi; + /** + * 批产负责人 + */ + @TableField("principal") + private String principal; + /** + * 定额汇总表 + */ + @TableField("quota_summary") + private String quotaSummary; + + /** + * 权属部门 + */ + @TableField("deptid") + private String deptid; + + /** + * 备注 + */ + @TableField("descn") + private String descn; + + @TableField("createtime") + private Date createtime; + + + @TableField(exist = false) + private String statusFmt; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } + + public String getMachineVersion() { + return machineVersion; + } + + public void setMachineVersion(String machineVersion) { + this.machineVersion = machineVersion; + } + + public String getHardwareVersion() { + return hardwareVersion; + } + + public void setHardwareVersion(String hardwareVersion) { + this.hardwareVersion = hardwareVersion; + } + + public String getSoftwareVersion() { + return softwareVersion; + } + + public void setSoftwareVersion(String softwareVersion) { + this.softwareVersion = softwareVersion; + } + + public String getDesignArchive() { + return designArchive; + } + + public void setDesignArchive(String designArchive) { + this.designArchive = designArchive; + } + + public String getBatchFiling() { + return batchFiling; + } + + public void setBatchFiling(String batchFiling) { + this.batchFiling = batchFiling; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getKpi() { + return kpi; + } + + public void setKpi(String kpi) { + this.kpi = kpi; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public String getQuotaSummary() { + return quotaSummary; + } + + public void setQuotaSummary(String quotaSummary) { + this.quotaSummary = quotaSummary; + } + + public String getStatusFmt() { + return statusFmt; + } + + public void setStatusFmt(String statusFmt) { + this.statusFmt = statusFmt; + } + + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getProductType() { + return productType; + } + + public void setProductType(String productType) { + this.productType = productType; + } + + public String getCommunicationVersion() { + return communicationVersion; + } + + public void setCommunicationVersion(String communicationVersion) { + this.communicationVersion = communicationVersion; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductDeviceType{" + + "id=" + id + + ", productName=" + productName + + ", productModel=" + productModel + + ", machineVersion=" + machineVersion + + ", hardwareVersion=" + hardwareVersion + + ", softwareVersion=" + softwareVersion + + ", designArchive=" + designArchive + + ", batchFiling=" + batchFiling + + ", status=" + status + + ", kpi=" + kpi + + ", principal=" + principal + + ", quotaSummary=" + quotaSummary + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java new file mode 100644 index 0000000..b0fd924 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java @@ -0,0 +1,187 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_factory_information") +public class ProductFactoryInformation extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 厂家名称 + */ + @TableField("name") + private String name; + /** + * 厂家联系人 + */ + @TableField("person_name") + private String personName; + /** + * 地址 + */ + @TableField("address") + private String address; + /** + * 电话 + */ + @TableField("phone") + private String phone; + /** + * 开户行 + */ + @TableField("bank") + private String bank; + /** + * 税号 + */ + @TableField("tax_number") + private String taxNumber; + /** + * 在产设备 + */ + @TableField("producting_device") + private String productingDevice; + /** + * 设备报价表 + */ + @TableField("equipment_quotation") + private String equipmentQuotation; + + @TableField("createtime") + private Date createtime =new Date(); + + @TableField("deptid") + private String deptid; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPersonName() { + return personName; + } + + public void setPersonName(String personName) { + this.personName = personName; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getBank() { + return bank; + } + + public void setBank(String bank) { + this.bank = bank; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getProductingDevice() { + return productingDevice; + } + + public void setProductingDevice(String productingDevice) { + this.productingDevice = productingDevice; + } + + public String getEquipmentQuotation() { + return equipmentQuotation; + } + + public void setEquipmentQuotation(String equipmentQuotation) { + this.equipmentQuotation = equipmentQuotation; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductFactoryInformation{" + + "id=" + id + + ", name=" + name + + ", personName=" + personName + + ", address=" + address + + ", phone=" + phone + + ", bank=" + bank + + ", taxNumber=" + taxNumber + + ", productingDevice=" + productingDevice + + ", equipmentQuotation=" + equipmentQuotation + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java new file mode 100644 index 0000000..00cbc92 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -0,0 +1,99 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@TableName("product_project") +public class Project extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_name") + private String projectName; + @TableField("project_simple_name") + private String projectSimpleName; + @TableField("project_manager") + private String projectManager; + private String descn; + @TableField("createtime") + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getProjectManager() { + return projectManager; + } + + public void setProjectManager(String projectManager) { + this.projectManager = projectManager; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Project{" + + "id=" + id + + ", projectName=" + projectName + + ", projectSimpleName=" + projectSimpleName + + ", projectManager=" + projectManager + + ", descn=" + descn + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java new file mode 100644 index 0000000..658c2e1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java @@ -0,0 +1,126 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_reimburse") +public class Reimburse extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mi:ss") + @TableField("reimburse_time") + private Date reimburseTime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getReimburseTime() { + return reimburseTime; + } + + public void setReimburseTime(Date reimburseTime) { + this.reimburseTime = reimburseTime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Reimburse{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", reimburseTime=" + reimburseTime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java new file mode 100644 index 0000000..987efa7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java @@ -0,0 +1,141 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_task") +public class Task extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_id") + private Long projectId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("devmode_id") + private String devmodeId; + private Long devcount; + @TableField("delivery_time") + private Date deliveryTime; + private String demand; + private Date createtime; + @TableField(exist = false) + private String deliveryTimeFmt; + + @TableField(exist = false) + private Long taskId; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getProjectId() { + return projectId; + } + + public void setProjectId(Long projectId) { + this.projectId = projectId; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDevmodeId() { + return devmodeId; + } + + public void setDevmodeId(String devmodeId) { + this.devmodeId = devmodeId; + } + + public Long getDevcount() { + return devcount; + } + + public void setDevcount(Long devcount) { + this.devcount = devcount; + } + + public Date getDeliveryTime() { + return deliveryTime; + } + + public void setDeliveryTime(Date deliveryTime) { + this.deliveryTime = deliveryTime; + } + + public String getDemand() { + return demand; + } + + public void setDemand(String demand) { + this.demand = demand; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeliveryTimeFmt() { + return deliveryTimeFmt; + } + + public void setDeliveryTimeFmt(String deliveryTimeFmt) { + this.deliveryTimeFmt = deliveryTimeFmt; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Task{" + + "id=" + id + + ", projectId=" + projectId + + ", devtypeId=" + devtypeId + + ", devmodeId=" + devmodeId + + ", devcount=" + devcount + + ", deliveryTime=" + deliveryTime + + ", demand=" + demand + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java new file mode 100644 index 0000000..7785de5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface IAccountService extends IService { + + /** + * 根据用户名查用户 + * @param userName + * @return + */ + Account findUserByName(String userName); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java new file mode 100644 index 0000000..d8b5e87 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IContractService extends IService { + List selectPageList(Page page, String keyword1, String keyword2, String keyword3); + List reportExport(String keyword1, String keyword2, String keyword3); + void importContract( List contracts); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java new file mode 100644 index 0000000..0f2d6e0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IPaymentsService extends IService { + + boolean validate(Long proId,String money,String reorder); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java new file mode 100644 index 0000000..71490df --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -0,0 +1,62 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductDeviceTypeService extends IService { + + /** + * 批量导入设备类型列表 + * @param results + */ + void importDeviceType(List results); + + /** + * 导出列表 + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List reportExport(String keyword1,String keyword2,String keyword3); + + + /** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectPageDataScope(DataScope dataScope, Page page, + String keyword1, String keyword2, String keyword3); + + /** + * 获取在产的设备类型 + * @return + */ + List selectDeviceTypeList(); + + /** + * 根据产品型号获取产品 + * @param deviceModel + * @return + */ + ProductDeviceType selectDeviceTypeByModel(String deviceModel); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java new file mode 100644 index 0000000..455f60a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductFactoryInformationService extends IService { + /** + * 根据条件导出列表 + * @param keyword1 + * @param keyword2 + * @return + */ + List reportExport(String keyword1, String keyword2); + + + /** + * 导入 + * @param results + */ + void importDeviceType(List results); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java new file mode 100644 index 0000000..3c27bd1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface IProjectService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java new file mode 100644 index 0000000..ee0a55c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IReimburseService extends IService { + boolean validate(Long proId,String money,String reorder); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java new file mode 100644 index 0000000..09ce653 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.dao.AccountMapper; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.stereotype.Service; + +/** + *

+ * 管理员表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@Service +public class AccountServiceImpl extends ServiceImpl implements IAccountService { + + @Override + public Account findUserByName(String userName) { + + EntityWrapper userEntityWrapper = new EntityWrapper<>(); + userEntityWrapper.eq("name",userName); + userEntityWrapper.eq("status","1"); + return this.selectOne(userEntityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java new file mode 100644 index 0000000..dd04da0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java @@ -0,0 +1,138 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.shiro.ShiroUser; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ContractMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IPaymentsService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ContractServiceImpl extends ServiceImpl implements IContractService { + @Autowired + private IPaymentsService paymentsService; + @Autowired + private ICommonPermissionService permissionService; + @Autowired + private IAccountService userService; + @Value("${casic.producerName}") + private String producerName; + @Value("${casic.repairName}") + private String repairName; + + @Override + public List selectPageList(Page page, String keyword1, String keyword2, String keyword3) { + +// EntityWrapper query = new EntityWrapper<>(); +// if (ToolUtil.isNotEmpty(keyword1)) { +// query.like("contract_factory", keyword1); +// } +// if (ToolUtil.isNotEmpty(keyword3)) { +// query.like("contract_number", keyword3); +// } +// List contractList = this.selectPage(page, query).getRecords(); +// contractList.forEach(contract -> { +// contract.setPaymentStatus(getPaymentStatus(contract)); +// String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" +// + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" +// + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); +// contract.setNetFlow(netFlowStr); +// +// }); +// return contractList; + + + List contractList = new ArrayList<>(); + DataScope dataScope = permissionService.getCurrUserDataScope(); + ShiroUser currentUser = permissionService.getCurrLoginUser(); + if (currentUser.getRoleTips().contains(producerName) || currentUser.getRoleTips().contains(repairName)) { + contractList = this.baseMapper.findContractList(dataScope,page, currentUser.getName(), keyword1, keyword2, keyword3); + } else { + contractList = this.baseMapper.findContractList(dataScope,page, "", keyword1, keyword2, keyword3); + } + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + + }); + return contractList; + } + + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + + + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("contractFactory", keyword1); + } + if (ToolUtil.isNotEmpty(keyword3)) { + query.like("contract_number", keyword3); + } + + List contractList = this.selectList(query); + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); +// permissionService.findInDictByCode("applyStatus") + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + }); + + return contractList; + } + + @Override + public void importContract(List contracts) { + contracts.forEach(contract -> { + EntityWrapper query = new EntityWrapper<>(); + query.eq("contract_number", contract.getContractNumber()); + this.delete(query); + Account user = userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); + this.insert(contract); + }); + } + + public String getPaymentStatus(Contract contract) { + Map paraMap = new HashMap<>(); + paraMap.put("pro_id", contract.getId()); + List paymentsList = paymentsService.selectByMap(paraMap); + float sum = 0; + for (Payments payments : paymentsList) { + sum = sum + (ToolUtil.isNotEmpty(payments.getMoney()) ? Float.parseFloat(payments.getMoney()) : 0); + } + DecimalFormat df = new DecimalFormat("0"); + return sum + "," + df.format(100 * sum / Float.valueOf(contract.getContractAmount())) + "%"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java new file mode 100644 index 0000000..0c125d8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PaymentsMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class PaymentsServiceImpl extends ServiceImpl implements IPaymentsService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money,String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List paymentsList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Payments payments : paymentsList) { + if(reorder.equals(payments.getReorder())) continue; + total += ToolUtil.isNotEmpty(payments.getMoney()) ? + Long.valueOf(payments.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java new file mode 100644 index 0000000..ac6d447 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductDeviceTypeMapper; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.swing.text.html.parser.Entity; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductDeviceTypeServiceImpl extends ServiceImpl implements IProductDeviceTypeService { + + @Autowired + private ICommonPermissionService permissionService; + + @Transactional(rollbackFor = Exception.class) + @Override + public void importDeviceType(List results) { + + for (ProductDeviceType productDeviceType : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + this.baseMapper.delete(wrapper); + this.baseMapper.insert(productDeviceType); + } + } + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + wrapper.like("principal", keyword3); + } + List productDeviceTypes = this.selectList(wrapper); + for (ProductDeviceType productDeviceType : productDeviceTypes) { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + } + return productDeviceTypes; + } + + @Override + public List selectPageDataScope(DataScope dataScope, Page page, String keyword1, String keyword2, String keyword3) { + + List productDeviceTypeList = this.baseMapper.selectDataScopePage(dataScope, page, keyword1, keyword2, keyword3); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + return productDeviceTypeList; + + } + + @Override + public List selectDeviceTypeList() { + return this.baseMapper.selectDeviceTypeList(); + } + + + @Override + public ProductDeviceType selectDeviceTypeByModel(String deviceModel) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("product_model",deviceModel); + return this.selectOne(entityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java new file mode 100644 index 0000000..efe4410 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java @@ -0,0 +1,50 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductFactoryInformationMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductFactoryInformationServiceImpl extends ServiceImpl implements IProductFactoryInformationService { + + @Override + public List reportExport(String keyword1, String keyword2) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.like("producting_device", keyword2); + } + List productFactoryInformations = this.selectList(wrapper); + + return productFactoryInformations; + } + + + @Transactional(rollbackFor=Exception.class) + @Override + public void importDeviceType(List results) { + for (ProductFactoryInformation productFactoryInformation : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + delete(wrapper); + this.baseMapper.insert(productFactoryInformation); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java new file mode 100644 index 0000000..34655b0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.dao.ProjectMapper; +import com.casic.missiles.modular.system.service.IProjectService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@Service +public class ProjectServiceImpl extends ServiceImpl implements IProjectService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java new file mode 100644 index 0000000..5e8b77b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java @@ -0,0 +1,48 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.dao.ReimburseMapper; +import com.casic.missiles.modular.system.service.IReimburseService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ReimburseServiceImpl extends ServiceImpl implements IReimburseService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money, String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List reimburseList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Reimburse reimburse : reimburseList) { + if (reorder.equals(reimburse.getReorder())) continue; + total += ToolUtil.isNotEmpty(reimburse.getMoney()) ? + Long.valueOf(reimburse.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java new file mode 100644 index 0000000..d5ffadb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java @@ -0,0 +1,235 @@ +package com.casic.missiles.modular.system.util; + +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; + +import java.util.*; + +/** + * @author test203 + * @since 2020-04-06 + */ +public class DeviceUtil { + private final static String factoryCode = "20"; + private final static String wellExcludeCode = "4120"; + private final static String loraDevice = "A"; + private static Map devTypeCountHashMap = new HashMap(); + + static { + devTypeCountHashMap.put("电子标识器", 99999L); + devTypeCountHashMap.put("井盖状态监测仪", 65534L); + devTypeCountHashMap.put("灯箱控制器", 65535L); + devTypeCountHashMap.put("单灯控制器(单路)", 65535L); + devTypeCountHashMap.put("单灯控制器(双路)", 65535L); + devTypeCountHashMap.put("数据集中器", 255L); + devTypeCountHashMap.put("有害气体监测仪", 999L); + } + + public static List createDevCodes(ProductDeviceType deviceType, List batches) { + List deviceList = new ArrayList<>(); + try { + if ("电子标识器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 年份XX 批次号XX 编号XXXXX + String devCode = deviceType.getProductType() + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%05d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("井盖状态监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + String wellCode4 = String.format("%04x", i); + if (wellExcludeCode.equals(wellCode4)) { + continue; + } + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + wellCode4; + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("灯箱控制器".equals(deviceType.getProductName()) || + "单灯控制器(单路)".equals(deviceType.getProductName()) || + "单灯控制器(双路)".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("数据集中器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("有害气体监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型WS2000X- 年份XX 批次序号XXXX 编号XXX + String devCode = deviceType.getProductType() + + getYearFmt() + + String.format("%04d", batch.getBatchNumber()) + + String.format("%03d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } + //其他设备类型分lora和非lora版本 + else { + if (loraDevice.equals(deviceType.getCommunicationVersion())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } else { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return deviceList; + } + + + public static Map validate(ProductDeviceType deviceType, List batches, Task task) { + Map resultMap = new HashMap<>(); + boolean success = true; + String msg = ""; + long devSum = null != task ? task.getDevcount() : 0; + long devcount = 0, batchCountMax; + batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? + 0 : devTypeCountHashMap.get(deviceType.getProductName()); + if (0 == batchCountMax) { + if (deviceType.getProductModel().indexOf(loraDevice) + == deviceType.getProductModel().length() - 1) { + batchCountMax = 255; + } else { + batchCountMax = 9999; + } + } + for (Batch batch : batches) { + if (batch.getBatchCount() > batchCountMax) { + success = false; + msg = batch.getBatchNumber() + "批次号数量超过了最大范围" + batchCountMax; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + devcount += batch.getBatchCount(); + } + if (devcount != devSum) { + return returnMsg(); + } + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + + public static Map returnMsg() { + Map resultMap = new HashMap<>(); + resultMap.put("success", false); + resultMap.put("msg", "所有批次数量之和与任务中设备数量不一致!"); + return resultMap; + } + + /** + * 获取编码中的年份 + * + * @return + */ + public static String getYearFmt() { + + return DateUtil.format(new Date(), "yyyy").substring(2); + } + + + /** + * 比较2个map + * + * @param batchMap + * @param batchMap1 + * @return + */ + public static boolean equalMap(Map batchMap, Map batchMap1) { + if (batchMap.size() != batchMap1.size()) { + return false; + } + Iterator iter1 = batchMap.keySet().iterator(); + while (iter1.hasNext()) { + Long map1key = iter1.next(); + String map1value = batchMap.get(map1key).toString(); + String map2value = batchMap1.get(map1key).toString(); + if (!map1value.equals(map2value)) { + return false; + } + } + return true; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java new file mode 100644 index 0000000..33c3535 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java @@ -0,0 +1,43 @@ +package com.casic.missiles.modular.system.util; + +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; + +public class FileUtil { + public static File createFile(String path) throws IOException { + File file = new File(path); + if (!file.exists()) { + file.getParentFile().mkdirs(); + file.createNewFile(); + } + return file; + } + + + public static void downloadLocalFile(HttpServletResponse response,String path, String fileName) throws IOException { + File file = new File(path); + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", "attachment; filename=\"" + URLEncoder.encode(fileName, "UTF-8") + "\""); + response.setContentLength((int) file.length()); + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java new file mode 100644 index 0000000..341d3d1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.task.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.task.service.IBatchService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 批次控制器 + * + * @author dev + * @Date 2020-03-27 15:29:55 + */ +@Controller +@RequestMapping("/batch") +public class BatchController extends BaseController { + + + @Autowired + private IBatchService batchService; + + + /** + * 获取批次列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return batchService.selectList(null); + } + + /** + * 获取批次分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = batchService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增批次并生成设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + @Transactional + public Object add(@RequestBody List batches, Task task) { + + return batchService.addBatchAndDevices(batches,task); + + } + + /** + * 删除批次 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String batchId) { + batchService.deleteById(batchId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("batchIds") List batchIds) { + batchService.deleteBatchIds(batchIds); + return ResponseData.success(); + } + + /** + * 修改批次 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Batch batch) { + batchService.updateById(batch); + return ResponseData.success(); + } + + + /** + * 根据设备类型id + * 查找批次号 + */ + @RequestMapping(value = "/getBatchNumber") + @ResponseBody + public Object getBatchNumber(Long devtypeId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.orderBy("id", false); + Batch batch = batchService.selectOne(entityWrapper); + return ResponseData.success(200, "", batch != null ? batch.getBatchNumber() + 1 : 1); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java new file mode 100644 index 0000000..f463168 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java @@ -0,0 +1,102 @@ +package com.casic.missiles.modular.task.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * 任务控制器 + * + * @author dev + * @Date 2020-03-27 15:28:26 + */ +@Controller +@RequestMapping("/task") +public class TaskController extends BaseController { + + + @Autowired + private ITaskService taskService; + + + /** + * 获取任务列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return taskService.selectList(null); + } + + /** + * 获取任务分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = taskService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增任务 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + taskService.insert(task); + return ResponseData.success(); + } + + /** + * 删除任务 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String taskId) { + taskService.deleteById(taskId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("taskIds") List taskIds) { + taskService.deleteBatchIds(taskIds); + return ResponseData.success(); + } + + /** + * 修改任务 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + taskService.updateById(task); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java new file mode 100644 index 0000000..04c7ef8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.task.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IBatchService extends IService { + + /** + * 添加批次和生成设备 + * @param batches + * @param task + * @return + */ + ResponseData addBatchAndDevices(List batches, Task task); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java new file mode 100644 index 0000000..50e1d37 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.task.service; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface ITaskService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java new file mode 100644 index 0000000..a435e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dao.BatchMapper; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.DeviceUtil; +import com.casic.missiles.modular.task.service.IBatchService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class BatchServiceImpl extends ServiceImpl implements IBatchService { + + @Autowired + private IProductDeviceTypeService deviceTypeService; + @Autowired + private IDeviceService deviceService; + + @Transactional(rollbackFor=Exception.class) + @Override + public ResponseData addBatchAndDevices(List batches, Task task) { + //提交前先验证是否已经存在,若存在且批次号或每批数量改变先删除 + try { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("task_id", task.getTaskId()); + List batchList = this.selectList(entityWrapper); + Map batchMap= new HashMap<>(); + Map batchMap1= new HashMap<>(); + List batchIdlist = new ArrayList<>(); + for (Batch batch : batches) { + batchMap.put(batch.getBatchNumber(),batch.getBatchCount()); + batch.setTaskId(task.getTaskId()); + batch.setDevtypeId(task.getDevtypeId()); + batchIdlist.add(batch.getId()); + } + for (Batch batch : batchList) { + batchMap1.put(batch.getBatchNumber(),batch.getBatchCount()); + } + + //若批次号和数量不变只更新批次表 + if (DeviceUtil.equalMap(batchMap, batchMap1)) { + this.insertOrUpdateBatch(batches); + } + //若批次号和数量更新,更新设备表(删除批次相关的设备后,写入新的设备) + else { + + //验证设备数量是否合格 + ProductDeviceType deviceType = deviceTypeService.selectDeviceTypeByModel(task.getDevmodeId()); + Map resultMap = DeviceUtil.validate(deviceType, batches, task); + if (!Boolean.valueOf(resultMap.get("success").toString())) { + return ResponseData.error(400, resultMap.get("msg").toString()); + } + //删除批次 + EntityWrapper batchEntityWrapper = new EntityWrapper<>(); + batchEntityWrapper.eq("task_id", task.getTaskId()); + this.delete(batchEntityWrapper); + //删除设备 + EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); + deviceEntityWrapper.in("batch_id", batchIdlist); + deviceEntityWrapper.eq("devtype_id",task.getDevtypeId()); + deviceService.delete(deviceEntityWrapper); + + //写入批次 + this.insertBatch(batches); + //写入设备 + List deviceList = DeviceUtil.createDevCodes(deviceType, batches); + deviceService.insertBatch(deviceList); + } + } catch (Exception e) { + e.printStackTrace(); + } + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java new file mode 100644 index 0000000..fac60bb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.dao.TaskMapper; +import com.casic.missiles.modular.task.service.ITaskService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class TaskServiceImpl extends ServiceImpl implements ITaskService { + +} diff --git a/casic-web/pom.xml b/casic-web/pom.xml new file mode 100644 index 0000000..f9f1c84 --- /dev/null +++ b/casic-web/pom.xml @@ -0,0 +1,300 @@ + + + 4.0.0 + + com.casic + casic-product-device + ../pom.xml + 1.0.0-SNAPSHOT + + casic-web + ${pro.version} + jar + casic-web + casic web启动入口 + + + + dev + + true + + + dev + true + 3600 + 3600 + + + + + test + + test + false + 180 + 180 + + + + + prod + + prod + true + 3600 + 3600 + + + + + + + + + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-admin-core + ${casic.version} + + + com.casic + casic-admin-area + ${casic.version} + + + + + + + + + + com.casic + casic-device + ${pro.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-cache + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + org.springframework.boot + spring-boot-devtools + true + + + + + + org.apache.shiro + shiro-core + + + slf4j-api + org.slf4j + + + + + org.apache.shiro + shiro-spring + + + org.apache.shiro + shiro-ehcache + + + slf4j-api + org.slf4j + + + + + org.ehcache + ehcache + ${ehcache.version} + + + + commons-io + commons-io + + + com.github.penggle + kaptcha + + + com.google.zxing + core + + + com.ibeetl + beetl + + + org.apache.commons + commons-lang3 + + + com.oracle + ojdbc6 + ${oracle.version} + + + org.codehaus.groovy + groovy-all + true + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + org.apache.maven.plugins + maven-jar-plugin + + + + /config/** + **/MockController.class + + + + + + + + + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + maven-assembly-plugin + + + false + + src/main/build/package.xml + + + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-resources-plugin + 2.6 + + + ${resource.delimiter} + + true + + + + copy-resources + validate + + copy-resources + + + ${project.build.outputDirectory} + + + + src/main/resources + true + + + + + + + + + + src/main/webapp + + + src/main/resources + + + src/main/java + + **/*.xml + + true + + + + + diff --git "a/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" "b/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" new file mode 100644 index 0000000..9656df2 --- /dev/null +++ "b/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" @@ -0,0 +1,4 @@ +@echo off +title 智慧城管 +java -jar guns-web-1.0.0-SNAPSHOT.jar +@pause diff --git a/casic-web/src/main/build/package.xml b/casic-web/src/main/build/package.xml new file mode 100644 index 0000000..68b7576 --- /dev/null +++ b/casic-web/src/main/build/package.xml @@ -0,0 +1,26 @@ + + + package + + zip + + true + + + src/main/bin + / + + + src/main/resources/config + / + + + ${project.build.directory} + / + + *.jar + + + + + \ No newline at end of file diff --git a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java new file mode 100644 index 0000000..0b0c3fb --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java @@ -0,0 +1,35 @@ +package com.casic.missiles; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * SpringBoot方式启动类 + * + * @author casic + * @Date 2017/5/21 12:06 + */ +@SpringBootApplication +@ServletComponentScan +@EnableTransactionManagement(proxyTargetClass = true) +public class CasicApplication { + + private static final Logger logger = LoggerFactory.getLogger(CasicApplication.class); + + public static void main(String[] args){ + SpringApplication.run(CasicApplication.class, args); + logger.info("GunsApplication is success!"); + + } + +} + + + + + + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java new file mode 100644 index 0000000..4670df3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 集中器相关日志 + */ +public class ProjectDict extends AbstractDictMap { + public static final String PROJECT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + @Override + public void init() { + put("projectName","项目名称"); + put("projectSimpleName","项目简称"); + put("projectManager","项目经理"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java new file mode 100644 index 0000000..7981a17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dto; + +/** + * 用于设备类型展示 + * @author test203 + * @date 2020-04-03 + */ +public class DeviceTypeDto { + private Long id; + private String productName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java new file mode 100644 index 0000000..f254585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java @@ -0,0 +1,361 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.math.BigDecimal; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; + +/** + *

+ * 管理员表 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@TableName("sys_user") +public class Account extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + /** + * 头像 + */ + private String avatar; + /** + * 账号 + */ + private String account; + /** + * 密码 + */ + private String password; + /** + * md5密码盐 + */ + private String salt; + /** + * 名字 + */ + private String name; + /** + * 生日 + */ + private Date birthday; + /** + * 性别(1:男 2:女) + */ + private String sex; + /** + * 电子邮件 + */ + private String email; + /** + * 电话 + */ + private String phone; + /** + * 角色id + */ + private String roleid; + /** + * 部门id + */ + private Long deptid; + /** + * 状态(1:启用 2:冻结 3:删除) + */ + private String status; + /** + * 创建时间 + */ + private Date createtime; + /** + * 保留字段 + */ + private Integer version; + private String targetid; + private String targetname; + @TableField("password_sync") + private String passwordSync; + @TableField("IS_SYNC") + private Integer isSync; + private String simplename; + /** + * 同步组织ID + */ + @TableField("TARGET_DEPTID_SYNC") + private String targetDeptidSync; + @TableField("LOGIN_IP") + private String loginIp; + @TableField("LOGIN_MAC") + private String loginMac; + /** + * 最后在线时间 + */ + @TableField("LAST_TIME") + private Date lastTime; + /** + * 经度 + */ + @TableField("POSITION_LNG") + private BigDecimal positionLng; + /** + * 纬度 + */ + @TableField("POSITION_LAT") + private BigDecimal positionLat; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt() { + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getRoleid() { + return roleid; + } + + public void setRoleid(String roleid) { + this.roleid = roleid; + } + + public Long getDeptid() { + return deptid; + } + + public void setDeptid(Long deptid) { + this.deptid = deptid; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + public String getTargetid() { + return targetid; + } + + public void setTargetid(String targetid) { + this.targetid = targetid; + } + + public String getTargetname() { + return targetname; + } + + public void setTargetname(String targetname) { + this.targetname = targetname; + } + + public String getPasswordSync() { + return passwordSync; + } + + public void setPasswordSync(String passwordSync) { + this.passwordSync = passwordSync; + } + + public Integer getIsSync() { + return isSync; + } + + public void setIsSync(Integer isSync) { + this.isSync = isSync; + } + + public String getSimplename() { + return simplename; + } + + public void setSimplename(String simplename) { + this.simplename = simplename; + } + + public String getTargetDeptidSync() { + return targetDeptidSync; + } + + public void setTargetDeptidSync(String targetDeptidSync) { + this.targetDeptidSync = targetDeptidSync; + } + + public String getLoginIp() { + return loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getLoginMac() { + return loginMac; + } + + public void setLoginMac(String loginMac) { + this.loginMac = loginMac; + } + + public Date getLastTime() { + return lastTime; + } + + public void setLastTime(Date lastTime) { + this.lastTime = lastTime; + } + + public BigDecimal getPositionLng() { + return positionLng; + } + + public void setPositionLng(BigDecimal positionLng) { + this.positionLng = positionLng; + } + + public BigDecimal getPositionLat() { + return positionLat; + } + + public void setPositionLat(BigDecimal positionLat) { + this.positionLat = positionLat; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", avatar=" + avatar + + ", account=" + account + + ", password=" + password + + ", salt=" + salt + + ", name=" + name + + ", birthday=" + birthday + + ", sex=" + sex + + ", email=" + email + + ", phone=" + phone + + ", roleid=" + roleid + + ", deptid=" + deptid + + ", status=" + status + + ", createtime=" + createtime + + ", version=" + version + + ", targetid=" + targetid + + ", targetname=" + targetname + + ", passwordSync=" + passwordSync + + ", isSync=" + isSync + + ", simplename=" + simplename + + ", targetDeptidSync=" + targetDeptidSync + + ", loginIp=" + loginIp + + ", loginMac=" + loginMac + + ", lastTime=" + lastTime + + ", positionLng=" + positionLng + + ", positionLat=" + positionLat + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java new file mode 100644 index 0000000..81516b7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -0,0 +1,110 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_batch") +public class Batch extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_number") + private Long batchNumber; + @TableField("batch_count") + private Long batchCount; + @TableField("contract_id") + private Long contractId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("task_id") + private Long taskId; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(Long batchNumber) { + this.batchNumber = batchNumber; + } + + public Long getBatchCount() { + return batchCount; + } + + public void setBatchCount(Long batchCount) { + this.batchCount = batchCount; + } + + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Batch{" + + "id=" + id + + ", batchNumber=" + batchNumber + + ", batchCount=" + batchCount + + ", contractId=" + contractId + + ", taskId=" + taskId + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java new file mode 100644 index 0000000..893a1ed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -0,0 +1,186 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_contract") +public class Contract extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("contract_number") + private String contractNumber; + @TableField("contract_name") + private String contractName; + @TableField("contract_content") + private String contractContent; + @TableField("contract_amount") + private String contractAmount; + @TableField("external_project_apply") + private String externalProjectApply; + @TableField("external_contract_apply") + private String externalContractApply; + @TableField("principal") + private String principal; + @TableField("external_check_apply") + private String externalCheckApply; + @TableField("contract_factory") + private String contractFactory; + @TableField("createtime") + private Date createtime; + @TableField(exist = false) + private String paymentStatus; + @TableField(exist = false) + private String netFlow; + @TableField("deptid") + private String deptid; + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getContractName() { + return contractName; + } + + public void setContractName(String contractName) { + this.contractName = contractName; + } + + public String getContractContent() { + return contractContent; + } + + public void setContractContent(String contractContent) { + this.contractContent = contractContent; + } + + public String getContractAmount() { + return contractAmount; + } + + public void setContractAmount(String contractAmount) { + this.contractAmount = contractAmount; + } + + public String getExternalProjectApply() { + return externalProjectApply; + } + + public void setExternalProjectApply(String externalProjectApply) { + this.externalProjectApply = externalProjectApply; + } + + public String getExternalContractApply() { + return externalContractApply; + } + + public void setExternalContractApply(String externalContractApply) { + this.externalContractApply = externalContractApply; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalCheckApply() { + return externalCheckApply; + } + + public void setExternalCheckApply(String externalCheckApply) { + this.externalCheckApply = externalCheckApply; + } + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public String getContractFactory() { + return contractFactory; + } + + public void setContractFactory(String contractFactory) { + this.contractFactory = contractFactory; + } + + public String getNetFlow() { + return netFlow; + } + + public void setNetFlow(String netFlow) { + this.netFlow = netFlow; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Contract{" + + "contractNumber=" + contractNumber + + ", contractName=" + contractName + + ", contractContent=" + contractContent + + ", contractAmount=" + contractAmount + + ", externalProjectApply=" + externalProjectApply + + ", externalContractApply=" + externalContractApply + + ", principal=" + principal + + ", id=" + id + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java new file mode 100644 index 0000000..8718d91 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -0,0 +1,150 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_device") +public class Device extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_id") + private Long batchId; + private String devcode; + @TableField("devtype_id") + private Long devtypeId; + @TableField("is_send") + private String isSend; + private String longitude; + private String latitude; + @TableField("install_height") + private String installHeight; + private String iccid; + private Long imei; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public Long getImei() { + return imei; + } + + public void setImei(Long imei) { + this.imei = imei; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Device{" + + "id=" + id + + ", batchId=" + batchId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", isSend=" + isSend + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", installHeight=" + installHeight + + ", iccid=" + iccid + + ", imei=" + imei + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java new file mode 100644 index 0000000..870c36f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_payments") +public class Payments extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @TableField("paytime") + private Date paytime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getPaytime() { + return paytime; + } + + public void setPaytime(Date paytime) { + this.paytime = paytime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Payments{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", paytime=" + paytime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java new file mode 100644 index 0000000..ae6b585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -0,0 +1,285 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_device_type") +public class ProductDeviceType extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 产品名称 + */ + @TableField("product_name") + private String productName; + /** + * 产品型号 + */ + @TableField("product_model") + private String productModel; + + /** + * 通讯版本号 + */ + @TableField("communication_version") + private String communicationVersion; + + /** + * 产品类型 + */ + @TableField("product_type") + private String productType; + + /** + * 整机版本号 + */ + @TableField("machine_version") + private String machineVersion; + /** + * 硬件版本号 + */ + @TableField("hardware_version") + private String hardwareVersion; + /** + * 软件版本号 + */ + @TableField("software_version") + private String softwareVersion; + /** + * 设计归档 + */ + @TableField("design_archive") + private String designArchive; + /** + * 批产归档 + */ + @TableField("batch_filing") + private String batchFiling; + /** + * 状态 + */ + @TableField("status") + private Integer status; + /** + * 性能指标 + */ + @TableField("kpi") + private String kpi; + /** + * 批产负责人 + */ + @TableField("principal") + private String principal; + /** + * 定额汇总表 + */ + @TableField("quota_summary") + private String quotaSummary; + + /** + * 权属部门 + */ + @TableField("deptid") + private String deptid; + + /** + * 备注 + */ + @TableField("descn") + private String descn; + + @TableField("createtime") + private Date createtime; + + + @TableField(exist = false) + private String statusFmt; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } + + public String getMachineVersion() { + return machineVersion; + } + + public void setMachineVersion(String machineVersion) { + this.machineVersion = machineVersion; + } + + public String getHardwareVersion() { + return hardwareVersion; + } + + public void setHardwareVersion(String hardwareVersion) { + this.hardwareVersion = hardwareVersion; + } + + public String getSoftwareVersion() { + return softwareVersion; + } + + public void setSoftwareVersion(String softwareVersion) { + this.softwareVersion = softwareVersion; + } + + public String getDesignArchive() { + return designArchive; + } + + public void setDesignArchive(String designArchive) { + this.designArchive = designArchive; + } + + public String getBatchFiling() { + return batchFiling; + } + + public void setBatchFiling(String batchFiling) { + this.batchFiling = batchFiling; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getKpi() { + return kpi; + } + + public void setKpi(String kpi) { + this.kpi = kpi; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public String getQuotaSummary() { + return quotaSummary; + } + + public void setQuotaSummary(String quotaSummary) { + this.quotaSummary = quotaSummary; + } + + public String getStatusFmt() { + return statusFmt; + } + + public void setStatusFmt(String statusFmt) { + this.statusFmt = statusFmt; + } + + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getProductType() { + return productType; + } + + public void setProductType(String productType) { + this.productType = productType; + } + + public String getCommunicationVersion() { + return communicationVersion; + } + + public void setCommunicationVersion(String communicationVersion) { + this.communicationVersion = communicationVersion; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductDeviceType{" + + "id=" + id + + ", productName=" + productName + + ", productModel=" + productModel + + ", machineVersion=" + machineVersion + + ", hardwareVersion=" + hardwareVersion + + ", softwareVersion=" + softwareVersion + + ", designArchive=" + designArchive + + ", batchFiling=" + batchFiling + + ", status=" + status + + ", kpi=" + kpi + + ", principal=" + principal + + ", quotaSummary=" + quotaSummary + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java new file mode 100644 index 0000000..b0fd924 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java @@ -0,0 +1,187 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_factory_information") +public class ProductFactoryInformation extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 厂家名称 + */ + @TableField("name") + private String name; + /** + * 厂家联系人 + */ + @TableField("person_name") + private String personName; + /** + * 地址 + */ + @TableField("address") + private String address; + /** + * 电话 + */ + @TableField("phone") + private String phone; + /** + * 开户行 + */ + @TableField("bank") + private String bank; + /** + * 税号 + */ + @TableField("tax_number") + private String taxNumber; + /** + * 在产设备 + */ + @TableField("producting_device") + private String productingDevice; + /** + * 设备报价表 + */ + @TableField("equipment_quotation") + private String equipmentQuotation; + + @TableField("createtime") + private Date createtime =new Date(); + + @TableField("deptid") + private String deptid; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPersonName() { + return personName; + } + + public void setPersonName(String personName) { + this.personName = personName; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getBank() { + return bank; + } + + public void setBank(String bank) { + this.bank = bank; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getProductingDevice() { + return productingDevice; + } + + public void setProductingDevice(String productingDevice) { + this.productingDevice = productingDevice; + } + + public String getEquipmentQuotation() { + return equipmentQuotation; + } + + public void setEquipmentQuotation(String equipmentQuotation) { + this.equipmentQuotation = equipmentQuotation; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductFactoryInformation{" + + "id=" + id + + ", name=" + name + + ", personName=" + personName + + ", address=" + address + + ", phone=" + phone + + ", bank=" + bank + + ", taxNumber=" + taxNumber + + ", productingDevice=" + productingDevice + + ", equipmentQuotation=" + equipmentQuotation + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java new file mode 100644 index 0000000..00cbc92 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -0,0 +1,99 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@TableName("product_project") +public class Project extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_name") + private String projectName; + @TableField("project_simple_name") + private String projectSimpleName; + @TableField("project_manager") + private String projectManager; + private String descn; + @TableField("createtime") + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getProjectManager() { + return projectManager; + } + + public void setProjectManager(String projectManager) { + this.projectManager = projectManager; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Project{" + + "id=" + id + + ", projectName=" + projectName + + ", projectSimpleName=" + projectSimpleName + + ", projectManager=" + projectManager + + ", descn=" + descn + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java new file mode 100644 index 0000000..658c2e1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java @@ -0,0 +1,126 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_reimburse") +public class Reimburse extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mi:ss") + @TableField("reimburse_time") + private Date reimburseTime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getReimburseTime() { + return reimburseTime; + } + + public void setReimburseTime(Date reimburseTime) { + this.reimburseTime = reimburseTime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Reimburse{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", reimburseTime=" + reimburseTime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java new file mode 100644 index 0000000..987efa7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java @@ -0,0 +1,141 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_task") +public class Task extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_id") + private Long projectId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("devmode_id") + private String devmodeId; + private Long devcount; + @TableField("delivery_time") + private Date deliveryTime; + private String demand; + private Date createtime; + @TableField(exist = false) + private String deliveryTimeFmt; + + @TableField(exist = false) + private Long taskId; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getProjectId() { + return projectId; + } + + public void setProjectId(Long projectId) { + this.projectId = projectId; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDevmodeId() { + return devmodeId; + } + + public void setDevmodeId(String devmodeId) { + this.devmodeId = devmodeId; + } + + public Long getDevcount() { + return devcount; + } + + public void setDevcount(Long devcount) { + this.devcount = devcount; + } + + public Date getDeliveryTime() { + return deliveryTime; + } + + public void setDeliveryTime(Date deliveryTime) { + this.deliveryTime = deliveryTime; + } + + public String getDemand() { + return demand; + } + + public void setDemand(String demand) { + this.demand = demand; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeliveryTimeFmt() { + return deliveryTimeFmt; + } + + public void setDeliveryTimeFmt(String deliveryTimeFmt) { + this.deliveryTimeFmt = deliveryTimeFmt; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Task{" + + "id=" + id + + ", projectId=" + projectId + + ", devtypeId=" + devtypeId + + ", devmodeId=" + devmodeId + + ", devcount=" + devcount + + ", deliveryTime=" + deliveryTime + + ", demand=" + demand + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java new file mode 100644 index 0000000..7785de5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface IAccountService extends IService { + + /** + * 根据用户名查用户 + * @param userName + * @return + */ + Account findUserByName(String userName); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java new file mode 100644 index 0000000..d8b5e87 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IContractService extends IService { + List selectPageList(Page page, String keyword1, String keyword2, String keyword3); + List reportExport(String keyword1, String keyword2, String keyword3); + void importContract( List contracts); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java new file mode 100644 index 0000000..0f2d6e0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IPaymentsService extends IService { + + boolean validate(Long proId,String money,String reorder); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java new file mode 100644 index 0000000..71490df --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -0,0 +1,62 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductDeviceTypeService extends IService { + + /** + * 批量导入设备类型列表 + * @param results + */ + void importDeviceType(List results); + + /** + * 导出列表 + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List reportExport(String keyword1,String keyword2,String keyword3); + + + /** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectPageDataScope(DataScope dataScope, Page page, + String keyword1, String keyword2, String keyword3); + + /** + * 获取在产的设备类型 + * @return + */ + List selectDeviceTypeList(); + + /** + * 根据产品型号获取产品 + * @param deviceModel + * @return + */ + ProductDeviceType selectDeviceTypeByModel(String deviceModel); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java new file mode 100644 index 0000000..455f60a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductFactoryInformationService extends IService { + /** + * 根据条件导出列表 + * @param keyword1 + * @param keyword2 + * @return + */ + List reportExport(String keyword1, String keyword2); + + + /** + * 导入 + * @param results + */ + void importDeviceType(List results); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java new file mode 100644 index 0000000..3c27bd1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface IProjectService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java new file mode 100644 index 0000000..ee0a55c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IReimburseService extends IService { + boolean validate(Long proId,String money,String reorder); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java new file mode 100644 index 0000000..09ce653 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.dao.AccountMapper; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.stereotype.Service; + +/** + *

+ * 管理员表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@Service +public class AccountServiceImpl extends ServiceImpl implements IAccountService { + + @Override + public Account findUserByName(String userName) { + + EntityWrapper userEntityWrapper = new EntityWrapper<>(); + userEntityWrapper.eq("name",userName); + userEntityWrapper.eq("status","1"); + return this.selectOne(userEntityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java new file mode 100644 index 0000000..dd04da0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java @@ -0,0 +1,138 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.shiro.ShiroUser; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ContractMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IPaymentsService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ContractServiceImpl extends ServiceImpl implements IContractService { + @Autowired + private IPaymentsService paymentsService; + @Autowired + private ICommonPermissionService permissionService; + @Autowired + private IAccountService userService; + @Value("${casic.producerName}") + private String producerName; + @Value("${casic.repairName}") + private String repairName; + + @Override + public List selectPageList(Page page, String keyword1, String keyword2, String keyword3) { + +// EntityWrapper query = new EntityWrapper<>(); +// if (ToolUtil.isNotEmpty(keyword1)) { +// query.like("contract_factory", keyword1); +// } +// if (ToolUtil.isNotEmpty(keyword3)) { +// query.like("contract_number", keyword3); +// } +// List contractList = this.selectPage(page, query).getRecords(); +// contractList.forEach(contract -> { +// contract.setPaymentStatus(getPaymentStatus(contract)); +// String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" +// + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" +// + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); +// contract.setNetFlow(netFlowStr); +// +// }); +// return contractList; + + + List contractList = new ArrayList<>(); + DataScope dataScope = permissionService.getCurrUserDataScope(); + ShiroUser currentUser = permissionService.getCurrLoginUser(); + if (currentUser.getRoleTips().contains(producerName) || currentUser.getRoleTips().contains(repairName)) { + contractList = this.baseMapper.findContractList(dataScope,page, currentUser.getName(), keyword1, keyword2, keyword3); + } else { + contractList = this.baseMapper.findContractList(dataScope,page, "", keyword1, keyword2, keyword3); + } + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + + }); + return contractList; + } + + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + + + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("contractFactory", keyword1); + } + if (ToolUtil.isNotEmpty(keyword3)) { + query.like("contract_number", keyword3); + } + + List contractList = this.selectList(query); + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); +// permissionService.findInDictByCode("applyStatus") + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + }); + + return contractList; + } + + @Override + public void importContract(List contracts) { + contracts.forEach(contract -> { + EntityWrapper query = new EntityWrapper<>(); + query.eq("contract_number", contract.getContractNumber()); + this.delete(query); + Account user = userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); + this.insert(contract); + }); + } + + public String getPaymentStatus(Contract contract) { + Map paraMap = new HashMap<>(); + paraMap.put("pro_id", contract.getId()); + List paymentsList = paymentsService.selectByMap(paraMap); + float sum = 0; + for (Payments payments : paymentsList) { + sum = sum + (ToolUtil.isNotEmpty(payments.getMoney()) ? Float.parseFloat(payments.getMoney()) : 0); + } + DecimalFormat df = new DecimalFormat("0"); + return sum + "," + df.format(100 * sum / Float.valueOf(contract.getContractAmount())) + "%"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java new file mode 100644 index 0000000..0c125d8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PaymentsMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class PaymentsServiceImpl extends ServiceImpl implements IPaymentsService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money,String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List paymentsList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Payments payments : paymentsList) { + if(reorder.equals(payments.getReorder())) continue; + total += ToolUtil.isNotEmpty(payments.getMoney()) ? + Long.valueOf(payments.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java new file mode 100644 index 0000000..ac6d447 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductDeviceTypeMapper; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.swing.text.html.parser.Entity; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductDeviceTypeServiceImpl extends ServiceImpl implements IProductDeviceTypeService { + + @Autowired + private ICommonPermissionService permissionService; + + @Transactional(rollbackFor = Exception.class) + @Override + public void importDeviceType(List results) { + + for (ProductDeviceType productDeviceType : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + this.baseMapper.delete(wrapper); + this.baseMapper.insert(productDeviceType); + } + } + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + wrapper.like("principal", keyword3); + } + List productDeviceTypes = this.selectList(wrapper); + for (ProductDeviceType productDeviceType : productDeviceTypes) { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + } + return productDeviceTypes; + } + + @Override + public List selectPageDataScope(DataScope dataScope, Page page, String keyword1, String keyword2, String keyword3) { + + List productDeviceTypeList = this.baseMapper.selectDataScopePage(dataScope, page, keyword1, keyword2, keyword3); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + return productDeviceTypeList; + + } + + @Override + public List selectDeviceTypeList() { + return this.baseMapper.selectDeviceTypeList(); + } + + + @Override + public ProductDeviceType selectDeviceTypeByModel(String deviceModel) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("product_model",deviceModel); + return this.selectOne(entityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java new file mode 100644 index 0000000..efe4410 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java @@ -0,0 +1,50 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductFactoryInformationMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductFactoryInformationServiceImpl extends ServiceImpl implements IProductFactoryInformationService { + + @Override + public List reportExport(String keyword1, String keyword2) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.like("producting_device", keyword2); + } + List productFactoryInformations = this.selectList(wrapper); + + return productFactoryInformations; + } + + + @Transactional(rollbackFor=Exception.class) + @Override + public void importDeviceType(List results) { + for (ProductFactoryInformation productFactoryInformation : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + delete(wrapper); + this.baseMapper.insert(productFactoryInformation); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java new file mode 100644 index 0000000..34655b0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.dao.ProjectMapper; +import com.casic.missiles.modular.system.service.IProjectService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@Service +public class ProjectServiceImpl extends ServiceImpl implements IProjectService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java new file mode 100644 index 0000000..5e8b77b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java @@ -0,0 +1,48 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.dao.ReimburseMapper; +import com.casic.missiles.modular.system.service.IReimburseService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ReimburseServiceImpl extends ServiceImpl implements IReimburseService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money, String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List reimburseList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Reimburse reimburse : reimburseList) { + if (reorder.equals(reimburse.getReorder())) continue; + total += ToolUtil.isNotEmpty(reimburse.getMoney()) ? + Long.valueOf(reimburse.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java new file mode 100644 index 0000000..d5ffadb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java @@ -0,0 +1,235 @@ +package com.casic.missiles.modular.system.util; + +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; + +import java.util.*; + +/** + * @author test203 + * @since 2020-04-06 + */ +public class DeviceUtil { + private final static String factoryCode = "20"; + private final static String wellExcludeCode = "4120"; + private final static String loraDevice = "A"; + private static Map devTypeCountHashMap = new HashMap(); + + static { + devTypeCountHashMap.put("电子标识器", 99999L); + devTypeCountHashMap.put("井盖状态监测仪", 65534L); + devTypeCountHashMap.put("灯箱控制器", 65535L); + devTypeCountHashMap.put("单灯控制器(单路)", 65535L); + devTypeCountHashMap.put("单灯控制器(双路)", 65535L); + devTypeCountHashMap.put("数据集中器", 255L); + devTypeCountHashMap.put("有害气体监测仪", 999L); + } + + public static List createDevCodes(ProductDeviceType deviceType, List batches) { + List deviceList = new ArrayList<>(); + try { + if ("电子标识器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 年份XX 批次号XX 编号XXXXX + String devCode = deviceType.getProductType() + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%05d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("井盖状态监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + String wellCode4 = String.format("%04x", i); + if (wellExcludeCode.equals(wellCode4)) { + continue; + } + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + wellCode4; + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("灯箱控制器".equals(deviceType.getProductName()) || + "单灯控制器(单路)".equals(deviceType.getProductName()) || + "单灯控制器(双路)".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("数据集中器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("有害气体监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型WS2000X- 年份XX 批次序号XXXX 编号XXX + String devCode = deviceType.getProductType() + + getYearFmt() + + String.format("%04d", batch.getBatchNumber()) + + String.format("%03d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } + //其他设备类型分lora和非lora版本 + else { + if (loraDevice.equals(deviceType.getCommunicationVersion())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } else { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return deviceList; + } + + + public static Map validate(ProductDeviceType deviceType, List batches, Task task) { + Map resultMap = new HashMap<>(); + boolean success = true; + String msg = ""; + long devSum = null != task ? task.getDevcount() : 0; + long devcount = 0, batchCountMax; + batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? + 0 : devTypeCountHashMap.get(deviceType.getProductName()); + if (0 == batchCountMax) { + if (deviceType.getProductModel().indexOf(loraDevice) + == deviceType.getProductModel().length() - 1) { + batchCountMax = 255; + } else { + batchCountMax = 9999; + } + } + for (Batch batch : batches) { + if (batch.getBatchCount() > batchCountMax) { + success = false; + msg = batch.getBatchNumber() + "批次号数量超过了最大范围" + batchCountMax; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + devcount += batch.getBatchCount(); + } + if (devcount != devSum) { + return returnMsg(); + } + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + + public static Map returnMsg() { + Map resultMap = new HashMap<>(); + resultMap.put("success", false); + resultMap.put("msg", "所有批次数量之和与任务中设备数量不一致!"); + return resultMap; + } + + /** + * 获取编码中的年份 + * + * @return + */ + public static String getYearFmt() { + + return DateUtil.format(new Date(), "yyyy").substring(2); + } + + + /** + * 比较2个map + * + * @param batchMap + * @param batchMap1 + * @return + */ + public static boolean equalMap(Map batchMap, Map batchMap1) { + if (batchMap.size() != batchMap1.size()) { + return false; + } + Iterator iter1 = batchMap.keySet().iterator(); + while (iter1.hasNext()) { + Long map1key = iter1.next(); + String map1value = batchMap.get(map1key).toString(); + String map2value = batchMap1.get(map1key).toString(); + if (!map1value.equals(map2value)) { + return false; + } + } + return true; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java new file mode 100644 index 0000000..33c3535 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java @@ -0,0 +1,43 @@ +package com.casic.missiles.modular.system.util; + +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; + +public class FileUtil { + public static File createFile(String path) throws IOException { + File file = new File(path); + if (!file.exists()) { + file.getParentFile().mkdirs(); + file.createNewFile(); + } + return file; + } + + + public static void downloadLocalFile(HttpServletResponse response,String path, String fileName) throws IOException { + File file = new File(path); + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", "attachment; filename=\"" + URLEncoder.encode(fileName, "UTF-8") + "\""); + response.setContentLength((int) file.length()); + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java new file mode 100644 index 0000000..341d3d1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.task.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.task.service.IBatchService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 批次控制器 + * + * @author dev + * @Date 2020-03-27 15:29:55 + */ +@Controller +@RequestMapping("/batch") +public class BatchController extends BaseController { + + + @Autowired + private IBatchService batchService; + + + /** + * 获取批次列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return batchService.selectList(null); + } + + /** + * 获取批次分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = batchService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增批次并生成设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + @Transactional + public Object add(@RequestBody List batches, Task task) { + + return batchService.addBatchAndDevices(batches,task); + + } + + /** + * 删除批次 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String batchId) { + batchService.deleteById(batchId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("batchIds") List batchIds) { + batchService.deleteBatchIds(batchIds); + return ResponseData.success(); + } + + /** + * 修改批次 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Batch batch) { + batchService.updateById(batch); + return ResponseData.success(); + } + + + /** + * 根据设备类型id + * 查找批次号 + */ + @RequestMapping(value = "/getBatchNumber") + @ResponseBody + public Object getBatchNumber(Long devtypeId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.orderBy("id", false); + Batch batch = batchService.selectOne(entityWrapper); + return ResponseData.success(200, "", batch != null ? batch.getBatchNumber() + 1 : 1); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java new file mode 100644 index 0000000..f463168 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java @@ -0,0 +1,102 @@ +package com.casic.missiles.modular.task.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * 任务控制器 + * + * @author dev + * @Date 2020-03-27 15:28:26 + */ +@Controller +@RequestMapping("/task") +public class TaskController extends BaseController { + + + @Autowired + private ITaskService taskService; + + + /** + * 获取任务列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return taskService.selectList(null); + } + + /** + * 获取任务分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = taskService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增任务 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + taskService.insert(task); + return ResponseData.success(); + } + + /** + * 删除任务 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String taskId) { + taskService.deleteById(taskId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("taskIds") List taskIds) { + taskService.deleteBatchIds(taskIds); + return ResponseData.success(); + } + + /** + * 修改任务 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + taskService.updateById(task); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java new file mode 100644 index 0000000..04c7ef8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.task.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IBatchService extends IService { + + /** + * 添加批次和生成设备 + * @param batches + * @param task + * @return + */ + ResponseData addBatchAndDevices(List batches, Task task); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java new file mode 100644 index 0000000..50e1d37 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.task.service; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface ITaskService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java new file mode 100644 index 0000000..a435e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dao.BatchMapper; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.DeviceUtil; +import com.casic.missiles.modular.task.service.IBatchService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class BatchServiceImpl extends ServiceImpl implements IBatchService { + + @Autowired + private IProductDeviceTypeService deviceTypeService; + @Autowired + private IDeviceService deviceService; + + @Transactional(rollbackFor=Exception.class) + @Override + public ResponseData addBatchAndDevices(List batches, Task task) { + //提交前先验证是否已经存在,若存在且批次号或每批数量改变先删除 + try { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("task_id", task.getTaskId()); + List batchList = this.selectList(entityWrapper); + Map batchMap= new HashMap<>(); + Map batchMap1= new HashMap<>(); + List batchIdlist = new ArrayList<>(); + for (Batch batch : batches) { + batchMap.put(batch.getBatchNumber(),batch.getBatchCount()); + batch.setTaskId(task.getTaskId()); + batch.setDevtypeId(task.getDevtypeId()); + batchIdlist.add(batch.getId()); + } + for (Batch batch : batchList) { + batchMap1.put(batch.getBatchNumber(),batch.getBatchCount()); + } + + //若批次号和数量不变只更新批次表 + if (DeviceUtil.equalMap(batchMap, batchMap1)) { + this.insertOrUpdateBatch(batches); + } + //若批次号和数量更新,更新设备表(删除批次相关的设备后,写入新的设备) + else { + + //验证设备数量是否合格 + ProductDeviceType deviceType = deviceTypeService.selectDeviceTypeByModel(task.getDevmodeId()); + Map resultMap = DeviceUtil.validate(deviceType, batches, task); + if (!Boolean.valueOf(resultMap.get("success").toString())) { + return ResponseData.error(400, resultMap.get("msg").toString()); + } + //删除批次 + EntityWrapper batchEntityWrapper = new EntityWrapper<>(); + batchEntityWrapper.eq("task_id", task.getTaskId()); + this.delete(batchEntityWrapper); + //删除设备 + EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); + deviceEntityWrapper.in("batch_id", batchIdlist); + deviceEntityWrapper.eq("devtype_id",task.getDevtypeId()); + deviceService.delete(deviceEntityWrapper); + + //写入批次 + this.insertBatch(batches); + //写入设备 + List deviceList = DeviceUtil.createDevCodes(deviceType, batches); + deviceService.insertBatch(deviceList); + } + } catch (Exception e) { + e.printStackTrace(); + } + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java new file mode 100644 index 0000000..fac60bb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.dao.TaskMapper; +import com.casic.missiles.modular.task.service.ITaskService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class TaskServiceImpl extends ServiceImpl implements ITaskService { + +} diff --git a/casic-web/pom.xml b/casic-web/pom.xml new file mode 100644 index 0000000..f9f1c84 --- /dev/null +++ b/casic-web/pom.xml @@ -0,0 +1,300 @@ + + + 4.0.0 + + com.casic + casic-product-device + ../pom.xml + 1.0.0-SNAPSHOT + + casic-web + ${pro.version} + jar + casic-web + casic web启动入口 + + + + dev + + true + + + dev + true + 3600 + 3600 + + + + + test + + test + false + 180 + 180 + + + + + prod + + prod + true + 3600 + 3600 + + + + + + + + + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-admin-core + ${casic.version} + + + com.casic + casic-admin-area + ${casic.version} + + + + + + + + + + com.casic + casic-device + ${pro.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-cache + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + org.springframework.boot + spring-boot-devtools + true + + + + + + org.apache.shiro + shiro-core + + + slf4j-api + org.slf4j + + + + + org.apache.shiro + shiro-spring + + + org.apache.shiro + shiro-ehcache + + + slf4j-api + org.slf4j + + + + + org.ehcache + ehcache + ${ehcache.version} + + + + commons-io + commons-io + + + com.github.penggle + kaptcha + + + com.google.zxing + core + + + com.ibeetl + beetl + + + org.apache.commons + commons-lang3 + + + com.oracle + ojdbc6 + ${oracle.version} + + + org.codehaus.groovy + groovy-all + true + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + org.apache.maven.plugins + maven-jar-plugin + + + + /config/** + **/MockController.class + + + + + + + + + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + maven-assembly-plugin + + + false + + src/main/build/package.xml + + + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-resources-plugin + 2.6 + + + ${resource.delimiter} + + true + + + + copy-resources + validate + + copy-resources + + + ${project.build.outputDirectory} + + + + src/main/resources + true + + + + + + + + + + src/main/webapp + + + src/main/resources + + + src/main/java + + **/*.xml + + true + + + + + diff --git "a/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" "b/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" new file mode 100644 index 0000000..9656df2 --- /dev/null +++ "b/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" @@ -0,0 +1,4 @@ +@echo off +title 智慧城管 +java -jar guns-web-1.0.0-SNAPSHOT.jar +@pause diff --git a/casic-web/src/main/build/package.xml b/casic-web/src/main/build/package.xml new file mode 100644 index 0000000..68b7576 --- /dev/null +++ b/casic-web/src/main/build/package.xml @@ -0,0 +1,26 @@ + + + package + + zip + + true + + + src/main/bin + / + + + src/main/resources/config + / + + + ${project.build.directory} + / + + *.jar + + + + + \ No newline at end of file diff --git a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java new file mode 100644 index 0000000..0b0c3fb --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java @@ -0,0 +1,35 @@ +package com.casic.missiles; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * SpringBoot方式启动类 + * + * @author casic + * @Date 2017/5/21 12:06 + */ +@SpringBootApplication +@ServletComponentScan +@EnableTransactionManagement(proxyTargetClass = true) +public class CasicApplication { + + private static final Logger logger = LoggerFactory.getLogger(CasicApplication.class); + + public static void main(String[] args){ + SpringApplication.run(CasicApplication.class, args); + logger.info("GunsApplication is success!"); + + } + +} + + + + + + diff --git a/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java new file mode 100644 index 0000000..269025c --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java @@ -0,0 +1,18 @@ +package com.casic.missiles; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.support.SpringBootServletInitializer; + +/** + * Guns Web程序启动类 + * + * @author fengshuonan + * @date 2017-05-21 9:43 + */ +public class CasicServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(CasicApplication.class); + } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java new file mode 100644 index 0000000..4670df3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 集中器相关日志 + */ +public class ProjectDict extends AbstractDictMap { + public static final String PROJECT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + @Override + public void init() { + put("projectName","项目名称"); + put("projectSimpleName","项目简称"); + put("projectManager","项目经理"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java new file mode 100644 index 0000000..7981a17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dto; + +/** + * 用于设备类型展示 + * @author test203 + * @date 2020-04-03 + */ +public class DeviceTypeDto { + private Long id; + private String productName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java new file mode 100644 index 0000000..f254585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java @@ -0,0 +1,361 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.math.BigDecimal; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; + +/** + *

+ * 管理员表 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@TableName("sys_user") +public class Account extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + /** + * 头像 + */ + private String avatar; + /** + * 账号 + */ + private String account; + /** + * 密码 + */ + private String password; + /** + * md5密码盐 + */ + private String salt; + /** + * 名字 + */ + private String name; + /** + * 生日 + */ + private Date birthday; + /** + * 性别(1:男 2:女) + */ + private String sex; + /** + * 电子邮件 + */ + private String email; + /** + * 电话 + */ + private String phone; + /** + * 角色id + */ + private String roleid; + /** + * 部门id + */ + private Long deptid; + /** + * 状态(1:启用 2:冻结 3:删除) + */ + private String status; + /** + * 创建时间 + */ + private Date createtime; + /** + * 保留字段 + */ + private Integer version; + private String targetid; + private String targetname; + @TableField("password_sync") + private String passwordSync; + @TableField("IS_SYNC") + private Integer isSync; + private String simplename; + /** + * 同步组织ID + */ + @TableField("TARGET_DEPTID_SYNC") + private String targetDeptidSync; + @TableField("LOGIN_IP") + private String loginIp; + @TableField("LOGIN_MAC") + private String loginMac; + /** + * 最后在线时间 + */ + @TableField("LAST_TIME") + private Date lastTime; + /** + * 经度 + */ + @TableField("POSITION_LNG") + private BigDecimal positionLng; + /** + * 纬度 + */ + @TableField("POSITION_LAT") + private BigDecimal positionLat; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt() { + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getRoleid() { + return roleid; + } + + public void setRoleid(String roleid) { + this.roleid = roleid; + } + + public Long getDeptid() { + return deptid; + } + + public void setDeptid(Long deptid) { + this.deptid = deptid; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + public String getTargetid() { + return targetid; + } + + public void setTargetid(String targetid) { + this.targetid = targetid; + } + + public String getTargetname() { + return targetname; + } + + public void setTargetname(String targetname) { + this.targetname = targetname; + } + + public String getPasswordSync() { + return passwordSync; + } + + public void setPasswordSync(String passwordSync) { + this.passwordSync = passwordSync; + } + + public Integer getIsSync() { + return isSync; + } + + public void setIsSync(Integer isSync) { + this.isSync = isSync; + } + + public String getSimplename() { + return simplename; + } + + public void setSimplename(String simplename) { + this.simplename = simplename; + } + + public String getTargetDeptidSync() { + return targetDeptidSync; + } + + public void setTargetDeptidSync(String targetDeptidSync) { + this.targetDeptidSync = targetDeptidSync; + } + + public String getLoginIp() { + return loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getLoginMac() { + return loginMac; + } + + public void setLoginMac(String loginMac) { + this.loginMac = loginMac; + } + + public Date getLastTime() { + return lastTime; + } + + public void setLastTime(Date lastTime) { + this.lastTime = lastTime; + } + + public BigDecimal getPositionLng() { + return positionLng; + } + + public void setPositionLng(BigDecimal positionLng) { + this.positionLng = positionLng; + } + + public BigDecimal getPositionLat() { + return positionLat; + } + + public void setPositionLat(BigDecimal positionLat) { + this.positionLat = positionLat; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", avatar=" + avatar + + ", account=" + account + + ", password=" + password + + ", salt=" + salt + + ", name=" + name + + ", birthday=" + birthday + + ", sex=" + sex + + ", email=" + email + + ", phone=" + phone + + ", roleid=" + roleid + + ", deptid=" + deptid + + ", status=" + status + + ", createtime=" + createtime + + ", version=" + version + + ", targetid=" + targetid + + ", targetname=" + targetname + + ", passwordSync=" + passwordSync + + ", isSync=" + isSync + + ", simplename=" + simplename + + ", targetDeptidSync=" + targetDeptidSync + + ", loginIp=" + loginIp + + ", loginMac=" + loginMac + + ", lastTime=" + lastTime + + ", positionLng=" + positionLng + + ", positionLat=" + positionLat + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java new file mode 100644 index 0000000..81516b7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -0,0 +1,110 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_batch") +public class Batch extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_number") + private Long batchNumber; + @TableField("batch_count") + private Long batchCount; + @TableField("contract_id") + private Long contractId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("task_id") + private Long taskId; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(Long batchNumber) { + this.batchNumber = batchNumber; + } + + public Long getBatchCount() { + return batchCount; + } + + public void setBatchCount(Long batchCount) { + this.batchCount = batchCount; + } + + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Batch{" + + "id=" + id + + ", batchNumber=" + batchNumber + + ", batchCount=" + batchCount + + ", contractId=" + contractId + + ", taskId=" + taskId + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java new file mode 100644 index 0000000..893a1ed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -0,0 +1,186 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_contract") +public class Contract extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("contract_number") + private String contractNumber; + @TableField("contract_name") + private String contractName; + @TableField("contract_content") + private String contractContent; + @TableField("contract_amount") + private String contractAmount; + @TableField("external_project_apply") + private String externalProjectApply; + @TableField("external_contract_apply") + private String externalContractApply; + @TableField("principal") + private String principal; + @TableField("external_check_apply") + private String externalCheckApply; + @TableField("contract_factory") + private String contractFactory; + @TableField("createtime") + private Date createtime; + @TableField(exist = false) + private String paymentStatus; + @TableField(exist = false) + private String netFlow; + @TableField("deptid") + private String deptid; + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getContractName() { + return contractName; + } + + public void setContractName(String contractName) { + this.contractName = contractName; + } + + public String getContractContent() { + return contractContent; + } + + public void setContractContent(String contractContent) { + this.contractContent = contractContent; + } + + public String getContractAmount() { + return contractAmount; + } + + public void setContractAmount(String contractAmount) { + this.contractAmount = contractAmount; + } + + public String getExternalProjectApply() { + return externalProjectApply; + } + + public void setExternalProjectApply(String externalProjectApply) { + this.externalProjectApply = externalProjectApply; + } + + public String getExternalContractApply() { + return externalContractApply; + } + + public void setExternalContractApply(String externalContractApply) { + this.externalContractApply = externalContractApply; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalCheckApply() { + return externalCheckApply; + } + + public void setExternalCheckApply(String externalCheckApply) { + this.externalCheckApply = externalCheckApply; + } + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public String getContractFactory() { + return contractFactory; + } + + public void setContractFactory(String contractFactory) { + this.contractFactory = contractFactory; + } + + public String getNetFlow() { + return netFlow; + } + + public void setNetFlow(String netFlow) { + this.netFlow = netFlow; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Contract{" + + "contractNumber=" + contractNumber + + ", contractName=" + contractName + + ", contractContent=" + contractContent + + ", contractAmount=" + contractAmount + + ", externalProjectApply=" + externalProjectApply + + ", externalContractApply=" + externalContractApply + + ", principal=" + principal + + ", id=" + id + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java new file mode 100644 index 0000000..8718d91 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -0,0 +1,150 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_device") +public class Device extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_id") + private Long batchId; + private String devcode; + @TableField("devtype_id") + private Long devtypeId; + @TableField("is_send") + private String isSend; + private String longitude; + private String latitude; + @TableField("install_height") + private String installHeight; + private String iccid; + private Long imei; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public Long getImei() { + return imei; + } + + public void setImei(Long imei) { + this.imei = imei; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Device{" + + "id=" + id + + ", batchId=" + batchId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", isSend=" + isSend + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", installHeight=" + installHeight + + ", iccid=" + iccid + + ", imei=" + imei + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java new file mode 100644 index 0000000..870c36f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_payments") +public class Payments extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @TableField("paytime") + private Date paytime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getPaytime() { + return paytime; + } + + public void setPaytime(Date paytime) { + this.paytime = paytime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Payments{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", paytime=" + paytime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java new file mode 100644 index 0000000..ae6b585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -0,0 +1,285 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_device_type") +public class ProductDeviceType extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 产品名称 + */ + @TableField("product_name") + private String productName; + /** + * 产品型号 + */ + @TableField("product_model") + private String productModel; + + /** + * 通讯版本号 + */ + @TableField("communication_version") + private String communicationVersion; + + /** + * 产品类型 + */ + @TableField("product_type") + private String productType; + + /** + * 整机版本号 + */ + @TableField("machine_version") + private String machineVersion; + /** + * 硬件版本号 + */ + @TableField("hardware_version") + private String hardwareVersion; + /** + * 软件版本号 + */ + @TableField("software_version") + private String softwareVersion; + /** + * 设计归档 + */ + @TableField("design_archive") + private String designArchive; + /** + * 批产归档 + */ + @TableField("batch_filing") + private String batchFiling; + /** + * 状态 + */ + @TableField("status") + private Integer status; + /** + * 性能指标 + */ + @TableField("kpi") + private String kpi; + /** + * 批产负责人 + */ + @TableField("principal") + private String principal; + /** + * 定额汇总表 + */ + @TableField("quota_summary") + private String quotaSummary; + + /** + * 权属部门 + */ + @TableField("deptid") + private String deptid; + + /** + * 备注 + */ + @TableField("descn") + private String descn; + + @TableField("createtime") + private Date createtime; + + + @TableField(exist = false) + private String statusFmt; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } + + public String getMachineVersion() { + return machineVersion; + } + + public void setMachineVersion(String machineVersion) { + this.machineVersion = machineVersion; + } + + public String getHardwareVersion() { + return hardwareVersion; + } + + public void setHardwareVersion(String hardwareVersion) { + this.hardwareVersion = hardwareVersion; + } + + public String getSoftwareVersion() { + return softwareVersion; + } + + public void setSoftwareVersion(String softwareVersion) { + this.softwareVersion = softwareVersion; + } + + public String getDesignArchive() { + return designArchive; + } + + public void setDesignArchive(String designArchive) { + this.designArchive = designArchive; + } + + public String getBatchFiling() { + return batchFiling; + } + + public void setBatchFiling(String batchFiling) { + this.batchFiling = batchFiling; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getKpi() { + return kpi; + } + + public void setKpi(String kpi) { + this.kpi = kpi; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public String getQuotaSummary() { + return quotaSummary; + } + + public void setQuotaSummary(String quotaSummary) { + this.quotaSummary = quotaSummary; + } + + public String getStatusFmt() { + return statusFmt; + } + + public void setStatusFmt(String statusFmt) { + this.statusFmt = statusFmt; + } + + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getProductType() { + return productType; + } + + public void setProductType(String productType) { + this.productType = productType; + } + + public String getCommunicationVersion() { + return communicationVersion; + } + + public void setCommunicationVersion(String communicationVersion) { + this.communicationVersion = communicationVersion; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductDeviceType{" + + "id=" + id + + ", productName=" + productName + + ", productModel=" + productModel + + ", machineVersion=" + machineVersion + + ", hardwareVersion=" + hardwareVersion + + ", softwareVersion=" + softwareVersion + + ", designArchive=" + designArchive + + ", batchFiling=" + batchFiling + + ", status=" + status + + ", kpi=" + kpi + + ", principal=" + principal + + ", quotaSummary=" + quotaSummary + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java new file mode 100644 index 0000000..b0fd924 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java @@ -0,0 +1,187 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_factory_information") +public class ProductFactoryInformation extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 厂家名称 + */ + @TableField("name") + private String name; + /** + * 厂家联系人 + */ + @TableField("person_name") + private String personName; + /** + * 地址 + */ + @TableField("address") + private String address; + /** + * 电话 + */ + @TableField("phone") + private String phone; + /** + * 开户行 + */ + @TableField("bank") + private String bank; + /** + * 税号 + */ + @TableField("tax_number") + private String taxNumber; + /** + * 在产设备 + */ + @TableField("producting_device") + private String productingDevice; + /** + * 设备报价表 + */ + @TableField("equipment_quotation") + private String equipmentQuotation; + + @TableField("createtime") + private Date createtime =new Date(); + + @TableField("deptid") + private String deptid; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPersonName() { + return personName; + } + + public void setPersonName(String personName) { + this.personName = personName; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getBank() { + return bank; + } + + public void setBank(String bank) { + this.bank = bank; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getProductingDevice() { + return productingDevice; + } + + public void setProductingDevice(String productingDevice) { + this.productingDevice = productingDevice; + } + + public String getEquipmentQuotation() { + return equipmentQuotation; + } + + public void setEquipmentQuotation(String equipmentQuotation) { + this.equipmentQuotation = equipmentQuotation; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductFactoryInformation{" + + "id=" + id + + ", name=" + name + + ", personName=" + personName + + ", address=" + address + + ", phone=" + phone + + ", bank=" + bank + + ", taxNumber=" + taxNumber + + ", productingDevice=" + productingDevice + + ", equipmentQuotation=" + equipmentQuotation + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java new file mode 100644 index 0000000..00cbc92 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -0,0 +1,99 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@TableName("product_project") +public class Project extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_name") + private String projectName; + @TableField("project_simple_name") + private String projectSimpleName; + @TableField("project_manager") + private String projectManager; + private String descn; + @TableField("createtime") + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getProjectManager() { + return projectManager; + } + + public void setProjectManager(String projectManager) { + this.projectManager = projectManager; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Project{" + + "id=" + id + + ", projectName=" + projectName + + ", projectSimpleName=" + projectSimpleName + + ", projectManager=" + projectManager + + ", descn=" + descn + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java new file mode 100644 index 0000000..658c2e1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java @@ -0,0 +1,126 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_reimburse") +public class Reimburse extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mi:ss") + @TableField("reimburse_time") + private Date reimburseTime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getReimburseTime() { + return reimburseTime; + } + + public void setReimburseTime(Date reimburseTime) { + this.reimburseTime = reimburseTime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Reimburse{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", reimburseTime=" + reimburseTime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java new file mode 100644 index 0000000..987efa7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java @@ -0,0 +1,141 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_task") +public class Task extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_id") + private Long projectId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("devmode_id") + private String devmodeId; + private Long devcount; + @TableField("delivery_time") + private Date deliveryTime; + private String demand; + private Date createtime; + @TableField(exist = false) + private String deliveryTimeFmt; + + @TableField(exist = false) + private Long taskId; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getProjectId() { + return projectId; + } + + public void setProjectId(Long projectId) { + this.projectId = projectId; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDevmodeId() { + return devmodeId; + } + + public void setDevmodeId(String devmodeId) { + this.devmodeId = devmodeId; + } + + public Long getDevcount() { + return devcount; + } + + public void setDevcount(Long devcount) { + this.devcount = devcount; + } + + public Date getDeliveryTime() { + return deliveryTime; + } + + public void setDeliveryTime(Date deliveryTime) { + this.deliveryTime = deliveryTime; + } + + public String getDemand() { + return demand; + } + + public void setDemand(String demand) { + this.demand = demand; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeliveryTimeFmt() { + return deliveryTimeFmt; + } + + public void setDeliveryTimeFmt(String deliveryTimeFmt) { + this.deliveryTimeFmt = deliveryTimeFmt; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Task{" + + "id=" + id + + ", projectId=" + projectId + + ", devtypeId=" + devtypeId + + ", devmodeId=" + devmodeId + + ", devcount=" + devcount + + ", deliveryTime=" + deliveryTime + + ", demand=" + demand + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java new file mode 100644 index 0000000..7785de5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface IAccountService extends IService { + + /** + * 根据用户名查用户 + * @param userName + * @return + */ + Account findUserByName(String userName); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java new file mode 100644 index 0000000..d8b5e87 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IContractService extends IService { + List selectPageList(Page page, String keyword1, String keyword2, String keyword3); + List reportExport(String keyword1, String keyword2, String keyword3); + void importContract( List contracts); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java new file mode 100644 index 0000000..0f2d6e0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IPaymentsService extends IService { + + boolean validate(Long proId,String money,String reorder); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java new file mode 100644 index 0000000..71490df --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -0,0 +1,62 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductDeviceTypeService extends IService { + + /** + * 批量导入设备类型列表 + * @param results + */ + void importDeviceType(List results); + + /** + * 导出列表 + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List reportExport(String keyword1,String keyword2,String keyword3); + + + /** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectPageDataScope(DataScope dataScope, Page page, + String keyword1, String keyword2, String keyword3); + + /** + * 获取在产的设备类型 + * @return + */ + List selectDeviceTypeList(); + + /** + * 根据产品型号获取产品 + * @param deviceModel + * @return + */ + ProductDeviceType selectDeviceTypeByModel(String deviceModel); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java new file mode 100644 index 0000000..455f60a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductFactoryInformationService extends IService { + /** + * 根据条件导出列表 + * @param keyword1 + * @param keyword2 + * @return + */ + List reportExport(String keyword1, String keyword2); + + + /** + * 导入 + * @param results + */ + void importDeviceType(List results); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java new file mode 100644 index 0000000..3c27bd1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface IProjectService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java new file mode 100644 index 0000000..ee0a55c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IReimburseService extends IService { + boolean validate(Long proId,String money,String reorder); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java new file mode 100644 index 0000000..09ce653 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.dao.AccountMapper; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.stereotype.Service; + +/** + *

+ * 管理员表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@Service +public class AccountServiceImpl extends ServiceImpl implements IAccountService { + + @Override + public Account findUserByName(String userName) { + + EntityWrapper userEntityWrapper = new EntityWrapper<>(); + userEntityWrapper.eq("name",userName); + userEntityWrapper.eq("status","1"); + return this.selectOne(userEntityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java new file mode 100644 index 0000000..dd04da0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java @@ -0,0 +1,138 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.shiro.ShiroUser; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ContractMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IPaymentsService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ContractServiceImpl extends ServiceImpl implements IContractService { + @Autowired + private IPaymentsService paymentsService; + @Autowired + private ICommonPermissionService permissionService; + @Autowired + private IAccountService userService; + @Value("${casic.producerName}") + private String producerName; + @Value("${casic.repairName}") + private String repairName; + + @Override + public List selectPageList(Page page, String keyword1, String keyword2, String keyword3) { + +// EntityWrapper query = new EntityWrapper<>(); +// if (ToolUtil.isNotEmpty(keyword1)) { +// query.like("contract_factory", keyword1); +// } +// if (ToolUtil.isNotEmpty(keyword3)) { +// query.like("contract_number", keyword3); +// } +// List contractList = this.selectPage(page, query).getRecords(); +// contractList.forEach(contract -> { +// contract.setPaymentStatus(getPaymentStatus(contract)); +// String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" +// + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" +// + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); +// contract.setNetFlow(netFlowStr); +// +// }); +// return contractList; + + + List contractList = new ArrayList<>(); + DataScope dataScope = permissionService.getCurrUserDataScope(); + ShiroUser currentUser = permissionService.getCurrLoginUser(); + if (currentUser.getRoleTips().contains(producerName) || currentUser.getRoleTips().contains(repairName)) { + contractList = this.baseMapper.findContractList(dataScope,page, currentUser.getName(), keyword1, keyword2, keyword3); + } else { + contractList = this.baseMapper.findContractList(dataScope,page, "", keyword1, keyword2, keyword3); + } + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + + }); + return contractList; + } + + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + + + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("contractFactory", keyword1); + } + if (ToolUtil.isNotEmpty(keyword3)) { + query.like("contract_number", keyword3); + } + + List contractList = this.selectList(query); + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); +// permissionService.findInDictByCode("applyStatus") + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + }); + + return contractList; + } + + @Override + public void importContract(List contracts) { + contracts.forEach(contract -> { + EntityWrapper query = new EntityWrapper<>(); + query.eq("contract_number", contract.getContractNumber()); + this.delete(query); + Account user = userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); + this.insert(contract); + }); + } + + public String getPaymentStatus(Contract contract) { + Map paraMap = new HashMap<>(); + paraMap.put("pro_id", contract.getId()); + List paymentsList = paymentsService.selectByMap(paraMap); + float sum = 0; + for (Payments payments : paymentsList) { + sum = sum + (ToolUtil.isNotEmpty(payments.getMoney()) ? Float.parseFloat(payments.getMoney()) : 0); + } + DecimalFormat df = new DecimalFormat("0"); + return sum + "," + df.format(100 * sum / Float.valueOf(contract.getContractAmount())) + "%"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java new file mode 100644 index 0000000..0c125d8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PaymentsMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class PaymentsServiceImpl extends ServiceImpl implements IPaymentsService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money,String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List paymentsList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Payments payments : paymentsList) { + if(reorder.equals(payments.getReorder())) continue; + total += ToolUtil.isNotEmpty(payments.getMoney()) ? + Long.valueOf(payments.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java new file mode 100644 index 0000000..ac6d447 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductDeviceTypeMapper; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.swing.text.html.parser.Entity; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductDeviceTypeServiceImpl extends ServiceImpl implements IProductDeviceTypeService { + + @Autowired + private ICommonPermissionService permissionService; + + @Transactional(rollbackFor = Exception.class) + @Override + public void importDeviceType(List results) { + + for (ProductDeviceType productDeviceType : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + this.baseMapper.delete(wrapper); + this.baseMapper.insert(productDeviceType); + } + } + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + wrapper.like("principal", keyword3); + } + List productDeviceTypes = this.selectList(wrapper); + for (ProductDeviceType productDeviceType : productDeviceTypes) { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + } + return productDeviceTypes; + } + + @Override + public List selectPageDataScope(DataScope dataScope, Page page, String keyword1, String keyword2, String keyword3) { + + List productDeviceTypeList = this.baseMapper.selectDataScopePage(dataScope, page, keyword1, keyword2, keyword3); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + return productDeviceTypeList; + + } + + @Override + public List selectDeviceTypeList() { + return this.baseMapper.selectDeviceTypeList(); + } + + + @Override + public ProductDeviceType selectDeviceTypeByModel(String deviceModel) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("product_model",deviceModel); + return this.selectOne(entityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java new file mode 100644 index 0000000..efe4410 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java @@ -0,0 +1,50 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductFactoryInformationMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductFactoryInformationServiceImpl extends ServiceImpl implements IProductFactoryInformationService { + + @Override + public List reportExport(String keyword1, String keyword2) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.like("producting_device", keyword2); + } + List productFactoryInformations = this.selectList(wrapper); + + return productFactoryInformations; + } + + + @Transactional(rollbackFor=Exception.class) + @Override + public void importDeviceType(List results) { + for (ProductFactoryInformation productFactoryInformation : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + delete(wrapper); + this.baseMapper.insert(productFactoryInformation); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java new file mode 100644 index 0000000..34655b0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.dao.ProjectMapper; +import com.casic.missiles.modular.system.service.IProjectService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@Service +public class ProjectServiceImpl extends ServiceImpl implements IProjectService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java new file mode 100644 index 0000000..5e8b77b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java @@ -0,0 +1,48 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.dao.ReimburseMapper; +import com.casic.missiles.modular.system.service.IReimburseService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ReimburseServiceImpl extends ServiceImpl implements IReimburseService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money, String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List reimburseList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Reimburse reimburse : reimburseList) { + if (reorder.equals(reimburse.getReorder())) continue; + total += ToolUtil.isNotEmpty(reimburse.getMoney()) ? + Long.valueOf(reimburse.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java new file mode 100644 index 0000000..d5ffadb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java @@ -0,0 +1,235 @@ +package com.casic.missiles.modular.system.util; + +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; + +import java.util.*; + +/** + * @author test203 + * @since 2020-04-06 + */ +public class DeviceUtil { + private final static String factoryCode = "20"; + private final static String wellExcludeCode = "4120"; + private final static String loraDevice = "A"; + private static Map devTypeCountHashMap = new HashMap(); + + static { + devTypeCountHashMap.put("电子标识器", 99999L); + devTypeCountHashMap.put("井盖状态监测仪", 65534L); + devTypeCountHashMap.put("灯箱控制器", 65535L); + devTypeCountHashMap.put("单灯控制器(单路)", 65535L); + devTypeCountHashMap.put("单灯控制器(双路)", 65535L); + devTypeCountHashMap.put("数据集中器", 255L); + devTypeCountHashMap.put("有害气体监测仪", 999L); + } + + public static List createDevCodes(ProductDeviceType deviceType, List batches) { + List deviceList = new ArrayList<>(); + try { + if ("电子标识器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 年份XX 批次号XX 编号XXXXX + String devCode = deviceType.getProductType() + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%05d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("井盖状态监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + String wellCode4 = String.format("%04x", i); + if (wellExcludeCode.equals(wellCode4)) { + continue; + } + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + wellCode4; + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("灯箱控制器".equals(deviceType.getProductName()) || + "单灯控制器(单路)".equals(deviceType.getProductName()) || + "单灯控制器(双路)".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("数据集中器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("有害气体监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型WS2000X- 年份XX 批次序号XXXX 编号XXX + String devCode = deviceType.getProductType() + + getYearFmt() + + String.format("%04d", batch.getBatchNumber()) + + String.format("%03d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } + //其他设备类型分lora和非lora版本 + else { + if (loraDevice.equals(deviceType.getCommunicationVersion())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } else { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return deviceList; + } + + + public static Map validate(ProductDeviceType deviceType, List batches, Task task) { + Map resultMap = new HashMap<>(); + boolean success = true; + String msg = ""; + long devSum = null != task ? task.getDevcount() : 0; + long devcount = 0, batchCountMax; + batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? + 0 : devTypeCountHashMap.get(deviceType.getProductName()); + if (0 == batchCountMax) { + if (deviceType.getProductModel().indexOf(loraDevice) + == deviceType.getProductModel().length() - 1) { + batchCountMax = 255; + } else { + batchCountMax = 9999; + } + } + for (Batch batch : batches) { + if (batch.getBatchCount() > batchCountMax) { + success = false; + msg = batch.getBatchNumber() + "批次号数量超过了最大范围" + batchCountMax; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + devcount += batch.getBatchCount(); + } + if (devcount != devSum) { + return returnMsg(); + } + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + + public static Map returnMsg() { + Map resultMap = new HashMap<>(); + resultMap.put("success", false); + resultMap.put("msg", "所有批次数量之和与任务中设备数量不一致!"); + return resultMap; + } + + /** + * 获取编码中的年份 + * + * @return + */ + public static String getYearFmt() { + + return DateUtil.format(new Date(), "yyyy").substring(2); + } + + + /** + * 比较2个map + * + * @param batchMap + * @param batchMap1 + * @return + */ + public static boolean equalMap(Map batchMap, Map batchMap1) { + if (batchMap.size() != batchMap1.size()) { + return false; + } + Iterator iter1 = batchMap.keySet().iterator(); + while (iter1.hasNext()) { + Long map1key = iter1.next(); + String map1value = batchMap.get(map1key).toString(); + String map2value = batchMap1.get(map1key).toString(); + if (!map1value.equals(map2value)) { + return false; + } + } + return true; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java new file mode 100644 index 0000000..33c3535 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java @@ -0,0 +1,43 @@ +package com.casic.missiles.modular.system.util; + +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; + +public class FileUtil { + public static File createFile(String path) throws IOException { + File file = new File(path); + if (!file.exists()) { + file.getParentFile().mkdirs(); + file.createNewFile(); + } + return file; + } + + + public static void downloadLocalFile(HttpServletResponse response,String path, String fileName) throws IOException { + File file = new File(path); + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", "attachment; filename=\"" + URLEncoder.encode(fileName, "UTF-8") + "\""); + response.setContentLength((int) file.length()); + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java new file mode 100644 index 0000000..341d3d1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.task.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.task.service.IBatchService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 批次控制器 + * + * @author dev + * @Date 2020-03-27 15:29:55 + */ +@Controller +@RequestMapping("/batch") +public class BatchController extends BaseController { + + + @Autowired + private IBatchService batchService; + + + /** + * 获取批次列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return batchService.selectList(null); + } + + /** + * 获取批次分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = batchService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增批次并生成设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + @Transactional + public Object add(@RequestBody List batches, Task task) { + + return batchService.addBatchAndDevices(batches,task); + + } + + /** + * 删除批次 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String batchId) { + batchService.deleteById(batchId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("batchIds") List batchIds) { + batchService.deleteBatchIds(batchIds); + return ResponseData.success(); + } + + /** + * 修改批次 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Batch batch) { + batchService.updateById(batch); + return ResponseData.success(); + } + + + /** + * 根据设备类型id + * 查找批次号 + */ + @RequestMapping(value = "/getBatchNumber") + @ResponseBody + public Object getBatchNumber(Long devtypeId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.orderBy("id", false); + Batch batch = batchService.selectOne(entityWrapper); + return ResponseData.success(200, "", batch != null ? batch.getBatchNumber() + 1 : 1); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java new file mode 100644 index 0000000..f463168 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java @@ -0,0 +1,102 @@ +package com.casic.missiles.modular.task.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * 任务控制器 + * + * @author dev + * @Date 2020-03-27 15:28:26 + */ +@Controller +@RequestMapping("/task") +public class TaskController extends BaseController { + + + @Autowired + private ITaskService taskService; + + + /** + * 获取任务列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return taskService.selectList(null); + } + + /** + * 获取任务分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = taskService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增任务 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + taskService.insert(task); + return ResponseData.success(); + } + + /** + * 删除任务 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String taskId) { + taskService.deleteById(taskId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("taskIds") List taskIds) { + taskService.deleteBatchIds(taskIds); + return ResponseData.success(); + } + + /** + * 修改任务 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + taskService.updateById(task); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java new file mode 100644 index 0000000..04c7ef8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.task.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IBatchService extends IService { + + /** + * 添加批次和生成设备 + * @param batches + * @param task + * @return + */ + ResponseData addBatchAndDevices(List batches, Task task); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java new file mode 100644 index 0000000..50e1d37 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.task.service; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface ITaskService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java new file mode 100644 index 0000000..a435e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dao.BatchMapper; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.DeviceUtil; +import com.casic.missiles.modular.task.service.IBatchService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class BatchServiceImpl extends ServiceImpl implements IBatchService { + + @Autowired + private IProductDeviceTypeService deviceTypeService; + @Autowired + private IDeviceService deviceService; + + @Transactional(rollbackFor=Exception.class) + @Override + public ResponseData addBatchAndDevices(List batches, Task task) { + //提交前先验证是否已经存在,若存在且批次号或每批数量改变先删除 + try { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("task_id", task.getTaskId()); + List batchList = this.selectList(entityWrapper); + Map batchMap= new HashMap<>(); + Map batchMap1= new HashMap<>(); + List batchIdlist = new ArrayList<>(); + for (Batch batch : batches) { + batchMap.put(batch.getBatchNumber(),batch.getBatchCount()); + batch.setTaskId(task.getTaskId()); + batch.setDevtypeId(task.getDevtypeId()); + batchIdlist.add(batch.getId()); + } + for (Batch batch : batchList) { + batchMap1.put(batch.getBatchNumber(),batch.getBatchCount()); + } + + //若批次号和数量不变只更新批次表 + if (DeviceUtil.equalMap(batchMap, batchMap1)) { + this.insertOrUpdateBatch(batches); + } + //若批次号和数量更新,更新设备表(删除批次相关的设备后,写入新的设备) + else { + + //验证设备数量是否合格 + ProductDeviceType deviceType = deviceTypeService.selectDeviceTypeByModel(task.getDevmodeId()); + Map resultMap = DeviceUtil.validate(deviceType, batches, task); + if (!Boolean.valueOf(resultMap.get("success").toString())) { + return ResponseData.error(400, resultMap.get("msg").toString()); + } + //删除批次 + EntityWrapper batchEntityWrapper = new EntityWrapper<>(); + batchEntityWrapper.eq("task_id", task.getTaskId()); + this.delete(batchEntityWrapper); + //删除设备 + EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); + deviceEntityWrapper.in("batch_id", batchIdlist); + deviceEntityWrapper.eq("devtype_id",task.getDevtypeId()); + deviceService.delete(deviceEntityWrapper); + + //写入批次 + this.insertBatch(batches); + //写入设备 + List deviceList = DeviceUtil.createDevCodes(deviceType, batches); + deviceService.insertBatch(deviceList); + } + } catch (Exception e) { + e.printStackTrace(); + } + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java new file mode 100644 index 0000000..fac60bb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.dao.TaskMapper; +import com.casic.missiles.modular.task.service.ITaskService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class TaskServiceImpl extends ServiceImpl implements ITaskService { + +} diff --git a/casic-web/pom.xml b/casic-web/pom.xml new file mode 100644 index 0000000..f9f1c84 --- /dev/null +++ b/casic-web/pom.xml @@ -0,0 +1,300 @@ + + + 4.0.0 + + com.casic + casic-product-device + ../pom.xml + 1.0.0-SNAPSHOT + + casic-web + ${pro.version} + jar + casic-web + casic web启动入口 + + + + dev + + true + + + dev + true + 3600 + 3600 + + + + + test + + test + false + 180 + 180 + + + + + prod + + prod + true + 3600 + 3600 + + + + + + + + + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-admin-core + ${casic.version} + + + com.casic + casic-admin-area + ${casic.version} + + + + + + + + + + com.casic + casic-device + ${pro.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-cache + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + org.springframework.boot + spring-boot-devtools + true + + + + + + org.apache.shiro + shiro-core + + + slf4j-api + org.slf4j + + + + + org.apache.shiro + shiro-spring + + + org.apache.shiro + shiro-ehcache + + + slf4j-api + org.slf4j + + + + + org.ehcache + ehcache + ${ehcache.version} + + + + commons-io + commons-io + + + com.github.penggle + kaptcha + + + com.google.zxing + core + + + com.ibeetl + beetl + + + org.apache.commons + commons-lang3 + + + com.oracle + ojdbc6 + ${oracle.version} + + + org.codehaus.groovy + groovy-all + true + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + org.apache.maven.plugins + maven-jar-plugin + + + + /config/** + **/MockController.class + + + + + + + + + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + maven-assembly-plugin + + + false + + src/main/build/package.xml + + + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-resources-plugin + 2.6 + + + ${resource.delimiter} + + true + + + + copy-resources + validate + + copy-resources + + + ${project.build.outputDirectory} + + + + src/main/resources + true + + + + + + + + + + src/main/webapp + + + src/main/resources + + + src/main/java + + **/*.xml + + true + + + + + diff --git "a/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" "b/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" new file mode 100644 index 0000000..9656df2 --- /dev/null +++ "b/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" @@ -0,0 +1,4 @@ +@echo off +title 智慧城管 +java -jar guns-web-1.0.0-SNAPSHOT.jar +@pause diff --git a/casic-web/src/main/build/package.xml b/casic-web/src/main/build/package.xml new file mode 100644 index 0000000..68b7576 --- /dev/null +++ b/casic-web/src/main/build/package.xml @@ -0,0 +1,26 @@ + + + package + + zip + + true + + + src/main/bin + / + + + src/main/resources/config + / + + + ${project.build.directory} + / + + *.jar + + + + + \ No newline at end of file diff --git a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java new file mode 100644 index 0000000..0b0c3fb --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java @@ -0,0 +1,35 @@ +package com.casic.missiles; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * SpringBoot方式启动类 + * + * @author casic + * @Date 2017/5/21 12:06 + */ +@SpringBootApplication +@ServletComponentScan +@EnableTransactionManagement(proxyTargetClass = true) +public class CasicApplication { + + private static final Logger logger = LoggerFactory.getLogger(CasicApplication.class); + + public static void main(String[] args){ + SpringApplication.run(CasicApplication.class, args); + logger.info("GunsApplication is success!"); + + } + +} + + + + + + diff --git a/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java new file mode 100644 index 0000000..269025c --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java @@ -0,0 +1,18 @@ +package com.casic.missiles; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.support.SpringBootServletInitializer; + +/** + * Guns Web程序启动类 + * + * @author fengshuonan + * @date 2017-05-21 9:43 + */ +public class CasicServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(CasicApplication.class); + } +} diff --git a/casic-web/src/main/java/com/casic/missiles/controller/MockController.java b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java new file mode 100644 index 0000000..a8285e8 --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java @@ -0,0 +1,83 @@ +package com.casic.missiles.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.log.LogManager; +import com.casic.missiles.core.log.factory.LogTaskFactory; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.core.shiro.ShiroUser; +import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.contant.PermissionContant; +import com.casic.missiles.modular.system.dto.LoginResult; +import org.apache.commons.lang3.StringUtils; +import org.apache.shiro.authc.UsernamePasswordToken; +import org.apache.shiro.subject.Subject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.servlet.http.HttpServletRequest; +import java.security.NoSuchAlgorithmException; +import java.util.Map; + +import static com.casic.missiles.core.support.HttpKit.getIp; + +/** + * 仅为mock登录使用 + */ +@Controller +@RequestMapping("/route") +public class MockController extends BaseController { + private static final Logger logger = LoggerFactory.getLogger(MockController.class); + + /** + * 获取mockToken + */ + @GetMapping("/mockToken") + @ResponseBody + public Object subdepts(HttpServletRequest request, String username, String password) { + ShiroKit.getSession().setAttribute(PermissionContant.IS_APP, false); + SuccessResponseData resultData = new SuccessResponseData(); + if (ToolUtil.isOneEmpty(username, password)) { + username = "admin"; + password = "1111111a"; + } + Subject currentUser = ShiroKit.getSubject(); + + try { + Map key = RSAUtils.genKeyPair(); + ShiroKit.getSession().setAttribute(PermissionContant.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey)); + logger.info("秘钥:".concat(key.get(RSAUtils.RSAPublicKey))); + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + + + UsernamePasswordToken token = new UsernamePasswordToken(username, password.toCharArray()); + token.setRememberMe(false); + try { + currentUser.login(token); + } catch (Exception e) { + e.printStackTrace(); + } + ShiroUser shiroUser = ShiroKit.getUser(); + super.getSession().setAttribute("shiroUser", shiroUser); + super.getSession().setAttribute("username", shiroUser.getAccount()); + + super.getSession().setAttribute(PermissionContant.SESSION_KEY, shiroUser.getId()); + + LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp())); + + ShiroKit.getSession().setAttribute("sessionFlag", true); + resultData.setData(new LoginResult(ShiroKit.getSession().getId().toString(), null)); + resultData.setMessage("登录成功"); + return resultData; + } + +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java new file mode 100644 index 0000000..4670df3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 集中器相关日志 + */ +public class ProjectDict extends AbstractDictMap { + public static final String PROJECT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + @Override + public void init() { + put("projectName","项目名称"); + put("projectSimpleName","项目简称"); + put("projectManager","项目经理"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java new file mode 100644 index 0000000..7981a17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dto; + +/** + * 用于设备类型展示 + * @author test203 + * @date 2020-04-03 + */ +public class DeviceTypeDto { + private Long id; + private String productName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java new file mode 100644 index 0000000..f254585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java @@ -0,0 +1,361 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.math.BigDecimal; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; + +/** + *

+ * 管理员表 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@TableName("sys_user") +public class Account extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + /** + * 头像 + */ + private String avatar; + /** + * 账号 + */ + private String account; + /** + * 密码 + */ + private String password; + /** + * md5密码盐 + */ + private String salt; + /** + * 名字 + */ + private String name; + /** + * 生日 + */ + private Date birthday; + /** + * 性别(1:男 2:女) + */ + private String sex; + /** + * 电子邮件 + */ + private String email; + /** + * 电话 + */ + private String phone; + /** + * 角色id + */ + private String roleid; + /** + * 部门id + */ + private Long deptid; + /** + * 状态(1:启用 2:冻结 3:删除) + */ + private String status; + /** + * 创建时间 + */ + private Date createtime; + /** + * 保留字段 + */ + private Integer version; + private String targetid; + private String targetname; + @TableField("password_sync") + private String passwordSync; + @TableField("IS_SYNC") + private Integer isSync; + private String simplename; + /** + * 同步组织ID + */ + @TableField("TARGET_DEPTID_SYNC") + private String targetDeptidSync; + @TableField("LOGIN_IP") + private String loginIp; + @TableField("LOGIN_MAC") + private String loginMac; + /** + * 最后在线时间 + */ + @TableField("LAST_TIME") + private Date lastTime; + /** + * 经度 + */ + @TableField("POSITION_LNG") + private BigDecimal positionLng; + /** + * 纬度 + */ + @TableField("POSITION_LAT") + private BigDecimal positionLat; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt() { + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getRoleid() { + return roleid; + } + + public void setRoleid(String roleid) { + this.roleid = roleid; + } + + public Long getDeptid() { + return deptid; + } + + public void setDeptid(Long deptid) { + this.deptid = deptid; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + public String getTargetid() { + return targetid; + } + + public void setTargetid(String targetid) { + this.targetid = targetid; + } + + public String getTargetname() { + return targetname; + } + + public void setTargetname(String targetname) { + this.targetname = targetname; + } + + public String getPasswordSync() { + return passwordSync; + } + + public void setPasswordSync(String passwordSync) { + this.passwordSync = passwordSync; + } + + public Integer getIsSync() { + return isSync; + } + + public void setIsSync(Integer isSync) { + this.isSync = isSync; + } + + public String getSimplename() { + return simplename; + } + + public void setSimplename(String simplename) { + this.simplename = simplename; + } + + public String getTargetDeptidSync() { + return targetDeptidSync; + } + + public void setTargetDeptidSync(String targetDeptidSync) { + this.targetDeptidSync = targetDeptidSync; + } + + public String getLoginIp() { + return loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getLoginMac() { + return loginMac; + } + + public void setLoginMac(String loginMac) { + this.loginMac = loginMac; + } + + public Date getLastTime() { + return lastTime; + } + + public void setLastTime(Date lastTime) { + this.lastTime = lastTime; + } + + public BigDecimal getPositionLng() { + return positionLng; + } + + public void setPositionLng(BigDecimal positionLng) { + this.positionLng = positionLng; + } + + public BigDecimal getPositionLat() { + return positionLat; + } + + public void setPositionLat(BigDecimal positionLat) { + this.positionLat = positionLat; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", avatar=" + avatar + + ", account=" + account + + ", password=" + password + + ", salt=" + salt + + ", name=" + name + + ", birthday=" + birthday + + ", sex=" + sex + + ", email=" + email + + ", phone=" + phone + + ", roleid=" + roleid + + ", deptid=" + deptid + + ", status=" + status + + ", createtime=" + createtime + + ", version=" + version + + ", targetid=" + targetid + + ", targetname=" + targetname + + ", passwordSync=" + passwordSync + + ", isSync=" + isSync + + ", simplename=" + simplename + + ", targetDeptidSync=" + targetDeptidSync + + ", loginIp=" + loginIp + + ", loginMac=" + loginMac + + ", lastTime=" + lastTime + + ", positionLng=" + positionLng + + ", positionLat=" + positionLat + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java new file mode 100644 index 0000000..81516b7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -0,0 +1,110 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_batch") +public class Batch extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_number") + private Long batchNumber; + @TableField("batch_count") + private Long batchCount; + @TableField("contract_id") + private Long contractId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("task_id") + private Long taskId; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(Long batchNumber) { + this.batchNumber = batchNumber; + } + + public Long getBatchCount() { + return batchCount; + } + + public void setBatchCount(Long batchCount) { + this.batchCount = batchCount; + } + + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Batch{" + + "id=" + id + + ", batchNumber=" + batchNumber + + ", batchCount=" + batchCount + + ", contractId=" + contractId + + ", taskId=" + taskId + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java new file mode 100644 index 0000000..893a1ed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -0,0 +1,186 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_contract") +public class Contract extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("contract_number") + private String contractNumber; + @TableField("contract_name") + private String contractName; + @TableField("contract_content") + private String contractContent; + @TableField("contract_amount") + private String contractAmount; + @TableField("external_project_apply") + private String externalProjectApply; + @TableField("external_contract_apply") + private String externalContractApply; + @TableField("principal") + private String principal; + @TableField("external_check_apply") + private String externalCheckApply; + @TableField("contract_factory") + private String contractFactory; + @TableField("createtime") + private Date createtime; + @TableField(exist = false) + private String paymentStatus; + @TableField(exist = false) + private String netFlow; + @TableField("deptid") + private String deptid; + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getContractName() { + return contractName; + } + + public void setContractName(String contractName) { + this.contractName = contractName; + } + + public String getContractContent() { + return contractContent; + } + + public void setContractContent(String contractContent) { + this.contractContent = contractContent; + } + + public String getContractAmount() { + return contractAmount; + } + + public void setContractAmount(String contractAmount) { + this.contractAmount = contractAmount; + } + + public String getExternalProjectApply() { + return externalProjectApply; + } + + public void setExternalProjectApply(String externalProjectApply) { + this.externalProjectApply = externalProjectApply; + } + + public String getExternalContractApply() { + return externalContractApply; + } + + public void setExternalContractApply(String externalContractApply) { + this.externalContractApply = externalContractApply; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalCheckApply() { + return externalCheckApply; + } + + public void setExternalCheckApply(String externalCheckApply) { + this.externalCheckApply = externalCheckApply; + } + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public String getContractFactory() { + return contractFactory; + } + + public void setContractFactory(String contractFactory) { + this.contractFactory = contractFactory; + } + + public String getNetFlow() { + return netFlow; + } + + public void setNetFlow(String netFlow) { + this.netFlow = netFlow; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Contract{" + + "contractNumber=" + contractNumber + + ", contractName=" + contractName + + ", contractContent=" + contractContent + + ", contractAmount=" + contractAmount + + ", externalProjectApply=" + externalProjectApply + + ", externalContractApply=" + externalContractApply + + ", principal=" + principal + + ", id=" + id + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java new file mode 100644 index 0000000..8718d91 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -0,0 +1,150 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_device") +public class Device extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_id") + private Long batchId; + private String devcode; + @TableField("devtype_id") + private Long devtypeId; + @TableField("is_send") + private String isSend; + private String longitude; + private String latitude; + @TableField("install_height") + private String installHeight; + private String iccid; + private Long imei; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public Long getImei() { + return imei; + } + + public void setImei(Long imei) { + this.imei = imei; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Device{" + + "id=" + id + + ", batchId=" + batchId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", isSend=" + isSend + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", installHeight=" + installHeight + + ", iccid=" + iccid + + ", imei=" + imei + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java new file mode 100644 index 0000000..870c36f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_payments") +public class Payments extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @TableField("paytime") + private Date paytime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getPaytime() { + return paytime; + } + + public void setPaytime(Date paytime) { + this.paytime = paytime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Payments{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", paytime=" + paytime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java new file mode 100644 index 0000000..ae6b585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -0,0 +1,285 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_device_type") +public class ProductDeviceType extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 产品名称 + */ + @TableField("product_name") + private String productName; + /** + * 产品型号 + */ + @TableField("product_model") + private String productModel; + + /** + * 通讯版本号 + */ + @TableField("communication_version") + private String communicationVersion; + + /** + * 产品类型 + */ + @TableField("product_type") + private String productType; + + /** + * 整机版本号 + */ + @TableField("machine_version") + private String machineVersion; + /** + * 硬件版本号 + */ + @TableField("hardware_version") + private String hardwareVersion; + /** + * 软件版本号 + */ + @TableField("software_version") + private String softwareVersion; + /** + * 设计归档 + */ + @TableField("design_archive") + private String designArchive; + /** + * 批产归档 + */ + @TableField("batch_filing") + private String batchFiling; + /** + * 状态 + */ + @TableField("status") + private Integer status; + /** + * 性能指标 + */ + @TableField("kpi") + private String kpi; + /** + * 批产负责人 + */ + @TableField("principal") + private String principal; + /** + * 定额汇总表 + */ + @TableField("quota_summary") + private String quotaSummary; + + /** + * 权属部门 + */ + @TableField("deptid") + private String deptid; + + /** + * 备注 + */ + @TableField("descn") + private String descn; + + @TableField("createtime") + private Date createtime; + + + @TableField(exist = false) + private String statusFmt; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } + + public String getMachineVersion() { + return machineVersion; + } + + public void setMachineVersion(String machineVersion) { + this.machineVersion = machineVersion; + } + + public String getHardwareVersion() { + return hardwareVersion; + } + + public void setHardwareVersion(String hardwareVersion) { + this.hardwareVersion = hardwareVersion; + } + + public String getSoftwareVersion() { + return softwareVersion; + } + + public void setSoftwareVersion(String softwareVersion) { + this.softwareVersion = softwareVersion; + } + + public String getDesignArchive() { + return designArchive; + } + + public void setDesignArchive(String designArchive) { + this.designArchive = designArchive; + } + + public String getBatchFiling() { + return batchFiling; + } + + public void setBatchFiling(String batchFiling) { + this.batchFiling = batchFiling; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getKpi() { + return kpi; + } + + public void setKpi(String kpi) { + this.kpi = kpi; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public String getQuotaSummary() { + return quotaSummary; + } + + public void setQuotaSummary(String quotaSummary) { + this.quotaSummary = quotaSummary; + } + + public String getStatusFmt() { + return statusFmt; + } + + public void setStatusFmt(String statusFmt) { + this.statusFmt = statusFmt; + } + + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getProductType() { + return productType; + } + + public void setProductType(String productType) { + this.productType = productType; + } + + public String getCommunicationVersion() { + return communicationVersion; + } + + public void setCommunicationVersion(String communicationVersion) { + this.communicationVersion = communicationVersion; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductDeviceType{" + + "id=" + id + + ", productName=" + productName + + ", productModel=" + productModel + + ", machineVersion=" + machineVersion + + ", hardwareVersion=" + hardwareVersion + + ", softwareVersion=" + softwareVersion + + ", designArchive=" + designArchive + + ", batchFiling=" + batchFiling + + ", status=" + status + + ", kpi=" + kpi + + ", principal=" + principal + + ", quotaSummary=" + quotaSummary + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java new file mode 100644 index 0000000..b0fd924 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java @@ -0,0 +1,187 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_factory_information") +public class ProductFactoryInformation extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 厂家名称 + */ + @TableField("name") + private String name; + /** + * 厂家联系人 + */ + @TableField("person_name") + private String personName; + /** + * 地址 + */ + @TableField("address") + private String address; + /** + * 电话 + */ + @TableField("phone") + private String phone; + /** + * 开户行 + */ + @TableField("bank") + private String bank; + /** + * 税号 + */ + @TableField("tax_number") + private String taxNumber; + /** + * 在产设备 + */ + @TableField("producting_device") + private String productingDevice; + /** + * 设备报价表 + */ + @TableField("equipment_quotation") + private String equipmentQuotation; + + @TableField("createtime") + private Date createtime =new Date(); + + @TableField("deptid") + private String deptid; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPersonName() { + return personName; + } + + public void setPersonName(String personName) { + this.personName = personName; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getBank() { + return bank; + } + + public void setBank(String bank) { + this.bank = bank; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getProductingDevice() { + return productingDevice; + } + + public void setProductingDevice(String productingDevice) { + this.productingDevice = productingDevice; + } + + public String getEquipmentQuotation() { + return equipmentQuotation; + } + + public void setEquipmentQuotation(String equipmentQuotation) { + this.equipmentQuotation = equipmentQuotation; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductFactoryInformation{" + + "id=" + id + + ", name=" + name + + ", personName=" + personName + + ", address=" + address + + ", phone=" + phone + + ", bank=" + bank + + ", taxNumber=" + taxNumber + + ", productingDevice=" + productingDevice + + ", equipmentQuotation=" + equipmentQuotation + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java new file mode 100644 index 0000000..00cbc92 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -0,0 +1,99 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@TableName("product_project") +public class Project extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_name") + private String projectName; + @TableField("project_simple_name") + private String projectSimpleName; + @TableField("project_manager") + private String projectManager; + private String descn; + @TableField("createtime") + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getProjectManager() { + return projectManager; + } + + public void setProjectManager(String projectManager) { + this.projectManager = projectManager; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Project{" + + "id=" + id + + ", projectName=" + projectName + + ", projectSimpleName=" + projectSimpleName + + ", projectManager=" + projectManager + + ", descn=" + descn + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java new file mode 100644 index 0000000..658c2e1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java @@ -0,0 +1,126 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_reimburse") +public class Reimburse extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mi:ss") + @TableField("reimburse_time") + private Date reimburseTime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getReimburseTime() { + return reimburseTime; + } + + public void setReimburseTime(Date reimburseTime) { + this.reimburseTime = reimburseTime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Reimburse{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", reimburseTime=" + reimburseTime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java new file mode 100644 index 0000000..987efa7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java @@ -0,0 +1,141 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_task") +public class Task extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_id") + private Long projectId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("devmode_id") + private String devmodeId; + private Long devcount; + @TableField("delivery_time") + private Date deliveryTime; + private String demand; + private Date createtime; + @TableField(exist = false) + private String deliveryTimeFmt; + + @TableField(exist = false) + private Long taskId; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getProjectId() { + return projectId; + } + + public void setProjectId(Long projectId) { + this.projectId = projectId; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDevmodeId() { + return devmodeId; + } + + public void setDevmodeId(String devmodeId) { + this.devmodeId = devmodeId; + } + + public Long getDevcount() { + return devcount; + } + + public void setDevcount(Long devcount) { + this.devcount = devcount; + } + + public Date getDeliveryTime() { + return deliveryTime; + } + + public void setDeliveryTime(Date deliveryTime) { + this.deliveryTime = deliveryTime; + } + + public String getDemand() { + return demand; + } + + public void setDemand(String demand) { + this.demand = demand; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeliveryTimeFmt() { + return deliveryTimeFmt; + } + + public void setDeliveryTimeFmt(String deliveryTimeFmt) { + this.deliveryTimeFmt = deliveryTimeFmt; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Task{" + + "id=" + id + + ", projectId=" + projectId + + ", devtypeId=" + devtypeId + + ", devmodeId=" + devmodeId + + ", devcount=" + devcount + + ", deliveryTime=" + deliveryTime + + ", demand=" + demand + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java new file mode 100644 index 0000000..7785de5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface IAccountService extends IService { + + /** + * 根据用户名查用户 + * @param userName + * @return + */ + Account findUserByName(String userName); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java new file mode 100644 index 0000000..d8b5e87 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IContractService extends IService { + List selectPageList(Page page, String keyword1, String keyword2, String keyword3); + List reportExport(String keyword1, String keyword2, String keyword3); + void importContract( List contracts); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java new file mode 100644 index 0000000..0f2d6e0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IPaymentsService extends IService { + + boolean validate(Long proId,String money,String reorder); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java new file mode 100644 index 0000000..71490df --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -0,0 +1,62 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductDeviceTypeService extends IService { + + /** + * 批量导入设备类型列表 + * @param results + */ + void importDeviceType(List results); + + /** + * 导出列表 + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List reportExport(String keyword1,String keyword2,String keyword3); + + + /** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectPageDataScope(DataScope dataScope, Page page, + String keyword1, String keyword2, String keyword3); + + /** + * 获取在产的设备类型 + * @return + */ + List selectDeviceTypeList(); + + /** + * 根据产品型号获取产品 + * @param deviceModel + * @return + */ + ProductDeviceType selectDeviceTypeByModel(String deviceModel); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java new file mode 100644 index 0000000..455f60a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductFactoryInformationService extends IService { + /** + * 根据条件导出列表 + * @param keyword1 + * @param keyword2 + * @return + */ + List reportExport(String keyword1, String keyword2); + + + /** + * 导入 + * @param results + */ + void importDeviceType(List results); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java new file mode 100644 index 0000000..3c27bd1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface IProjectService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java new file mode 100644 index 0000000..ee0a55c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IReimburseService extends IService { + boolean validate(Long proId,String money,String reorder); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java new file mode 100644 index 0000000..09ce653 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.dao.AccountMapper; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.stereotype.Service; + +/** + *

+ * 管理员表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@Service +public class AccountServiceImpl extends ServiceImpl implements IAccountService { + + @Override + public Account findUserByName(String userName) { + + EntityWrapper userEntityWrapper = new EntityWrapper<>(); + userEntityWrapper.eq("name",userName); + userEntityWrapper.eq("status","1"); + return this.selectOne(userEntityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java new file mode 100644 index 0000000..dd04da0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java @@ -0,0 +1,138 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.shiro.ShiroUser; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ContractMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IPaymentsService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ContractServiceImpl extends ServiceImpl implements IContractService { + @Autowired + private IPaymentsService paymentsService; + @Autowired + private ICommonPermissionService permissionService; + @Autowired + private IAccountService userService; + @Value("${casic.producerName}") + private String producerName; + @Value("${casic.repairName}") + private String repairName; + + @Override + public List selectPageList(Page page, String keyword1, String keyword2, String keyword3) { + +// EntityWrapper query = new EntityWrapper<>(); +// if (ToolUtil.isNotEmpty(keyword1)) { +// query.like("contract_factory", keyword1); +// } +// if (ToolUtil.isNotEmpty(keyword3)) { +// query.like("contract_number", keyword3); +// } +// List contractList = this.selectPage(page, query).getRecords(); +// contractList.forEach(contract -> { +// contract.setPaymentStatus(getPaymentStatus(contract)); +// String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" +// + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" +// + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); +// contract.setNetFlow(netFlowStr); +// +// }); +// return contractList; + + + List contractList = new ArrayList<>(); + DataScope dataScope = permissionService.getCurrUserDataScope(); + ShiroUser currentUser = permissionService.getCurrLoginUser(); + if (currentUser.getRoleTips().contains(producerName) || currentUser.getRoleTips().contains(repairName)) { + contractList = this.baseMapper.findContractList(dataScope,page, currentUser.getName(), keyword1, keyword2, keyword3); + } else { + contractList = this.baseMapper.findContractList(dataScope,page, "", keyword1, keyword2, keyword3); + } + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + + }); + return contractList; + } + + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + + + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("contractFactory", keyword1); + } + if (ToolUtil.isNotEmpty(keyword3)) { + query.like("contract_number", keyword3); + } + + List contractList = this.selectList(query); + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); +// permissionService.findInDictByCode("applyStatus") + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + }); + + return contractList; + } + + @Override + public void importContract(List contracts) { + contracts.forEach(contract -> { + EntityWrapper query = new EntityWrapper<>(); + query.eq("contract_number", contract.getContractNumber()); + this.delete(query); + Account user = userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); + this.insert(contract); + }); + } + + public String getPaymentStatus(Contract contract) { + Map paraMap = new HashMap<>(); + paraMap.put("pro_id", contract.getId()); + List paymentsList = paymentsService.selectByMap(paraMap); + float sum = 0; + for (Payments payments : paymentsList) { + sum = sum + (ToolUtil.isNotEmpty(payments.getMoney()) ? Float.parseFloat(payments.getMoney()) : 0); + } + DecimalFormat df = new DecimalFormat("0"); + return sum + "," + df.format(100 * sum / Float.valueOf(contract.getContractAmount())) + "%"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java new file mode 100644 index 0000000..0c125d8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PaymentsMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class PaymentsServiceImpl extends ServiceImpl implements IPaymentsService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money,String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List paymentsList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Payments payments : paymentsList) { + if(reorder.equals(payments.getReorder())) continue; + total += ToolUtil.isNotEmpty(payments.getMoney()) ? + Long.valueOf(payments.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java new file mode 100644 index 0000000..ac6d447 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductDeviceTypeMapper; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.swing.text.html.parser.Entity; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductDeviceTypeServiceImpl extends ServiceImpl implements IProductDeviceTypeService { + + @Autowired + private ICommonPermissionService permissionService; + + @Transactional(rollbackFor = Exception.class) + @Override + public void importDeviceType(List results) { + + for (ProductDeviceType productDeviceType : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + this.baseMapper.delete(wrapper); + this.baseMapper.insert(productDeviceType); + } + } + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + wrapper.like("principal", keyword3); + } + List productDeviceTypes = this.selectList(wrapper); + for (ProductDeviceType productDeviceType : productDeviceTypes) { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + } + return productDeviceTypes; + } + + @Override + public List selectPageDataScope(DataScope dataScope, Page page, String keyword1, String keyword2, String keyword3) { + + List productDeviceTypeList = this.baseMapper.selectDataScopePage(dataScope, page, keyword1, keyword2, keyword3); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + return productDeviceTypeList; + + } + + @Override + public List selectDeviceTypeList() { + return this.baseMapper.selectDeviceTypeList(); + } + + + @Override + public ProductDeviceType selectDeviceTypeByModel(String deviceModel) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("product_model",deviceModel); + return this.selectOne(entityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java new file mode 100644 index 0000000..efe4410 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java @@ -0,0 +1,50 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductFactoryInformationMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductFactoryInformationServiceImpl extends ServiceImpl implements IProductFactoryInformationService { + + @Override + public List reportExport(String keyword1, String keyword2) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.like("producting_device", keyword2); + } + List productFactoryInformations = this.selectList(wrapper); + + return productFactoryInformations; + } + + + @Transactional(rollbackFor=Exception.class) + @Override + public void importDeviceType(List results) { + for (ProductFactoryInformation productFactoryInformation : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + delete(wrapper); + this.baseMapper.insert(productFactoryInformation); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java new file mode 100644 index 0000000..34655b0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.dao.ProjectMapper; +import com.casic.missiles.modular.system.service.IProjectService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@Service +public class ProjectServiceImpl extends ServiceImpl implements IProjectService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java new file mode 100644 index 0000000..5e8b77b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java @@ -0,0 +1,48 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.dao.ReimburseMapper; +import com.casic.missiles.modular.system.service.IReimburseService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ReimburseServiceImpl extends ServiceImpl implements IReimburseService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money, String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List reimburseList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Reimburse reimburse : reimburseList) { + if (reorder.equals(reimburse.getReorder())) continue; + total += ToolUtil.isNotEmpty(reimburse.getMoney()) ? + Long.valueOf(reimburse.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java new file mode 100644 index 0000000..d5ffadb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java @@ -0,0 +1,235 @@ +package com.casic.missiles.modular.system.util; + +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; + +import java.util.*; + +/** + * @author test203 + * @since 2020-04-06 + */ +public class DeviceUtil { + private final static String factoryCode = "20"; + private final static String wellExcludeCode = "4120"; + private final static String loraDevice = "A"; + private static Map devTypeCountHashMap = new HashMap(); + + static { + devTypeCountHashMap.put("电子标识器", 99999L); + devTypeCountHashMap.put("井盖状态监测仪", 65534L); + devTypeCountHashMap.put("灯箱控制器", 65535L); + devTypeCountHashMap.put("单灯控制器(单路)", 65535L); + devTypeCountHashMap.put("单灯控制器(双路)", 65535L); + devTypeCountHashMap.put("数据集中器", 255L); + devTypeCountHashMap.put("有害气体监测仪", 999L); + } + + public static List createDevCodes(ProductDeviceType deviceType, List batches) { + List deviceList = new ArrayList<>(); + try { + if ("电子标识器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 年份XX 批次号XX 编号XXXXX + String devCode = deviceType.getProductType() + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%05d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("井盖状态监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + String wellCode4 = String.format("%04x", i); + if (wellExcludeCode.equals(wellCode4)) { + continue; + } + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + wellCode4; + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("灯箱控制器".equals(deviceType.getProductName()) || + "单灯控制器(单路)".equals(deviceType.getProductName()) || + "单灯控制器(双路)".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("数据集中器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("有害气体监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型WS2000X- 年份XX 批次序号XXXX 编号XXX + String devCode = deviceType.getProductType() + + getYearFmt() + + String.format("%04d", batch.getBatchNumber()) + + String.format("%03d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } + //其他设备类型分lora和非lora版本 + else { + if (loraDevice.equals(deviceType.getCommunicationVersion())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } else { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return deviceList; + } + + + public static Map validate(ProductDeviceType deviceType, List batches, Task task) { + Map resultMap = new HashMap<>(); + boolean success = true; + String msg = ""; + long devSum = null != task ? task.getDevcount() : 0; + long devcount = 0, batchCountMax; + batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? + 0 : devTypeCountHashMap.get(deviceType.getProductName()); + if (0 == batchCountMax) { + if (deviceType.getProductModel().indexOf(loraDevice) + == deviceType.getProductModel().length() - 1) { + batchCountMax = 255; + } else { + batchCountMax = 9999; + } + } + for (Batch batch : batches) { + if (batch.getBatchCount() > batchCountMax) { + success = false; + msg = batch.getBatchNumber() + "批次号数量超过了最大范围" + batchCountMax; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + devcount += batch.getBatchCount(); + } + if (devcount != devSum) { + return returnMsg(); + } + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + + public static Map returnMsg() { + Map resultMap = new HashMap<>(); + resultMap.put("success", false); + resultMap.put("msg", "所有批次数量之和与任务中设备数量不一致!"); + return resultMap; + } + + /** + * 获取编码中的年份 + * + * @return + */ + public static String getYearFmt() { + + return DateUtil.format(new Date(), "yyyy").substring(2); + } + + + /** + * 比较2个map + * + * @param batchMap + * @param batchMap1 + * @return + */ + public static boolean equalMap(Map batchMap, Map batchMap1) { + if (batchMap.size() != batchMap1.size()) { + return false; + } + Iterator iter1 = batchMap.keySet().iterator(); + while (iter1.hasNext()) { + Long map1key = iter1.next(); + String map1value = batchMap.get(map1key).toString(); + String map2value = batchMap1.get(map1key).toString(); + if (!map1value.equals(map2value)) { + return false; + } + } + return true; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java new file mode 100644 index 0000000..33c3535 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java @@ -0,0 +1,43 @@ +package com.casic.missiles.modular.system.util; + +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; + +public class FileUtil { + public static File createFile(String path) throws IOException { + File file = new File(path); + if (!file.exists()) { + file.getParentFile().mkdirs(); + file.createNewFile(); + } + return file; + } + + + public static void downloadLocalFile(HttpServletResponse response,String path, String fileName) throws IOException { + File file = new File(path); + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", "attachment; filename=\"" + URLEncoder.encode(fileName, "UTF-8") + "\""); + response.setContentLength((int) file.length()); + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java new file mode 100644 index 0000000..341d3d1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.task.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.task.service.IBatchService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 批次控制器 + * + * @author dev + * @Date 2020-03-27 15:29:55 + */ +@Controller +@RequestMapping("/batch") +public class BatchController extends BaseController { + + + @Autowired + private IBatchService batchService; + + + /** + * 获取批次列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return batchService.selectList(null); + } + + /** + * 获取批次分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = batchService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增批次并生成设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + @Transactional + public Object add(@RequestBody List batches, Task task) { + + return batchService.addBatchAndDevices(batches,task); + + } + + /** + * 删除批次 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String batchId) { + batchService.deleteById(batchId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("batchIds") List batchIds) { + batchService.deleteBatchIds(batchIds); + return ResponseData.success(); + } + + /** + * 修改批次 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Batch batch) { + batchService.updateById(batch); + return ResponseData.success(); + } + + + /** + * 根据设备类型id + * 查找批次号 + */ + @RequestMapping(value = "/getBatchNumber") + @ResponseBody + public Object getBatchNumber(Long devtypeId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.orderBy("id", false); + Batch batch = batchService.selectOne(entityWrapper); + return ResponseData.success(200, "", batch != null ? batch.getBatchNumber() + 1 : 1); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java new file mode 100644 index 0000000..f463168 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java @@ -0,0 +1,102 @@ +package com.casic.missiles.modular.task.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * 任务控制器 + * + * @author dev + * @Date 2020-03-27 15:28:26 + */ +@Controller +@RequestMapping("/task") +public class TaskController extends BaseController { + + + @Autowired + private ITaskService taskService; + + + /** + * 获取任务列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return taskService.selectList(null); + } + + /** + * 获取任务分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = taskService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增任务 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + taskService.insert(task); + return ResponseData.success(); + } + + /** + * 删除任务 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String taskId) { + taskService.deleteById(taskId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("taskIds") List taskIds) { + taskService.deleteBatchIds(taskIds); + return ResponseData.success(); + } + + /** + * 修改任务 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + taskService.updateById(task); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java new file mode 100644 index 0000000..04c7ef8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.task.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IBatchService extends IService { + + /** + * 添加批次和生成设备 + * @param batches + * @param task + * @return + */ + ResponseData addBatchAndDevices(List batches, Task task); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java new file mode 100644 index 0000000..50e1d37 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.task.service; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface ITaskService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java new file mode 100644 index 0000000..a435e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dao.BatchMapper; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.DeviceUtil; +import com.casic.missiles.modular.task.service.IBatchService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class BatchServiceImpl extends ServiceImpl implements IBatchService { + + @Autowired + private IProductDeviceTypeService deviceTypeService; + @Autowired + private IDeviceService deviceService; + + @Transactional(rollbackFor=Exception.class) + @Override + public ResponseData addBatchAndDevices(List batches, Task task) { + //提交前先验证是否已经存在,若存在且批次号或每批数量改变先删除 + try { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("task_id", task.getTaskId()); + List batchList = this.selectList(entityWrapper); + Map batchMap= new HashMap<>(); + Map batchMap1= new HashMap<>(); + List batchIdlist = new ArrayList<>(); + for (Batch batch : batches) { + batchMap.put(batch.getBatchNumber(),batch.getBatchCount()); + batch.setTaskId(task.getTaskId()); + batch.setDevtypeId(task.getDevtypeId()); + batchIdlist.add(batch.getId()); + } + for (Batch batch : batchList) { + batchMap1.put(batch.getBatchNumber(),batch.getBatchCount()); + } + + //若批次号和数量不变只更新批次表 + if (DeviceUtil.equalMap(batchMap, batchMap1)) { + this.insertOrUpdateBatch(batches); + } + //若批次号和数量更新,更新设备表(删除批次相关的设备后,写入新的设备) + else { + + //验证设备数量是否合格 + ProductDeviceType deviceType = deviceTypeService.selectDeviceTypeByModel(task.getDevmodeId()); + Map resultMap = DeviceUtil.validate(deviceType, batches, task); + if (!Boolean.valueOf(resultMap.get("success").toString())) { + return ResponseData.error(400, resultMap.get("msg").toString()); + } + //删除批次 + EntityWrapper batchEntityWrapper = new EntityWrapper<>(); + batchEntityWrapper.eq("task_id", task.getTaskId()); + this.delete(batchEntityWrapper); + //删除设备 + EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); + deviceEntityWrapper.in("batch_id", batchIdlist); + deviceEntityWrapper.eq("devtype_id",task.getDevtypeId()); + deviceService.delete(deviceEntityWrapper); + + //写入批次 + this.insertBatch(batches); + //写入设备 + List deviceList = DeviceUtil.createDevCodes(deviceType, batches); + deviceService.insertBatch(deviceList); + } + } catch (Exception e) { + e.printStackTrace(); + } + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java new file mode 100644 index 0000000..fac60bb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.dao.TaskMapper; +import com.casic.missiles.modular.task.service.ITaskService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class TaskServiceImpl extends ServiceImpl implements ITaskService { + +} diff --git a/casic-web/pom.xml b/casic-web/pom.xml new file mode 100644 index 0000000..f9f1c84 --- /dev/null +++ b/casic-web/pom.xml @@ -0,0 +1,300 @@ + + + 4.0.0 + + com.casic + casic-product-device + ../pom.xml + 1.0.0-SNAPSHOT + + casic-web + ${pro.version} + jar + casic-web + casic web启动入口 + + + + dev + + true + + + dev + true + 3600 + 3600 + + + + + test + + test + false + 180 + 180 + + + + + prod + + prod + true + 3600 + 3600 + + + + + + + + + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-admin-core + ${casic.version} + + + com.casic + casic-admin-area + ${casic.version} + + + + + + + + + + com.casic + casic-device + ${pro.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-cache + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + org.springframework.boot + spring-boot-devtools + true + + + + + + org.apache.shiro + shiro-core + + + slf4j-api + org.slf4j + + + + + org.apache.shiro + shiro-spring + + + org.apache.shiro + shiro-ehcache + + + slf4j-api + org.slf4j + + + + + org.ehcache + ehcache + ${ehcache.version} + + + + commons-io + commons-io + + + com.github.penggle + kaptcha + + + com.google.zxing + core + + + com.ibeetl + beetl + + + org.apache.commons + commons-lang3 + + + com.oracle + ojdbc6 + ${oracle.version} + + + org.codehaus.groovy + groovy-all + true + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + org.apache.maven.plugins + maven-jar-plugin + + + + /config/** + **/MockController.class + + + + + + + + + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + maven-assembly-plugin + + + false + + src/main/build/package.xml + + + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-resources-plugin + 2.6 + + + ${resource.delimiter} + + true + + + + copy-resources + validate + + copy-resources + + + ${project.build.outputDirectory} + + + + src/main/resources + true + + + + + + + + + + src/main/webapp + + + src/main/resources + + + src/main/java + + **/*.xml + + true + + + + + diff --git "a/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" "b/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" new file mode 100644 index 0000000..9656df2 --- /dev/null +++ "b/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" @@ -0,0 +1,4 @@ +@echo off +title 智慧城管 +java -jar guns-web-1.0.0-SNAPSHOT.jar +@pause diff --git a/casic-web/src/main/build/package.xml b/casic-web/src/main/build/package.xml new file mode 100644 index 0000000..68b7576 --- /dev/null +++ b/casic-web/src/main/build/package.xml @@ -0,0 +1,26 @@ + + + package + + zip + + true + + + src/main/bin + / + + + src/main/resources/config + / + + + ${project.build.directory} + / + + *.jar + + + + + \ No newline at end of file diff --git a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java new file mode 100644 index 0000000..0b0c3fb --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java @@ -0,0 +1,35 @@ +package com.casic.missiles; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * SpringBoot方式启动类 + * + * @author casic + * @Date 2017/5/21 12:06 + */ +@SpringBootApplication +@ServletComponentScan +@EnableTransactionManagement(proxyTargetClass = true) +public class CasicApplication { + + private static final Logger logger = LoggerFactory.getLogger(CasicApplication.class); + + public static void main(String[] args){ + SpringApplication.run(CasicApplication.class, args); + logger.info("GunsApplication is success!"); + + } + +} + + + + + + diff --git a/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java new file mode 100644 index 0000000..269025c --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java @@ -0,0 +1,18 @@ +package com.casic.missiles; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.support.SpringBootServletInitializer; + +/** + * Guns Web程序启动类 + * + * @author fengshuonan + * @date 2017-05-21 9:43 + */ +public class CasicServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(CasicApplication.class); + } +} diff --git a/casic-web/src/main/java/com/casic/missiles/controller/MockController.java b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java new file mode 100644 index 0000000..a8285e8 --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java @@ -0,0 +1,83 @@ +package com.casic.missiles.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.log.LogManager; +import com.casic.missiles.core.log.factory.LogTaskFactory; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.core.shiro.ShiroUser; +import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.contant.PermissionContant; +import com.casic.missiles.modular.system.dto.LoginResult; +import org.apache.commons.lang3.StringUtils; +import org.apache.shiro.authc.UsernamePasswordToken; +import org.apache.shiro.subject.Subject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.servlet.http.HttpServletRequest; +import java.security.NoSuchAlgorithmException; +import java.util.Map; + +import static com.casic.missiles.core.support.HttpKit.getIp; + +/** + * 仅为mock登录使用 + */ +@Controller +@RequestMapping("/route") +public class MockController extends BaseController { + private static final Logger logger = LoggerFactory.getLogger(MockController.class); + + /** + * 获取mockToken + */ + @GetMapping("/mockToken") + @ResponseBody + public Object subdepts(HttpServletRequest request, String username, String password) { + ShiroKit.getSession().setAttribute(PermissionContant.IS_APP, false); + SuccessResponseData resultData = new SuccessResponseData(); + if (ToolUtil.isOneEmpty(username, password)) { + username = "admin"; + password = "1111111a"; + } + Subject currentUser = ShiroKit.getSubject(); + + try { + Map key = RSAUtils.genKeyPair(); + ShiroKit.getSession().setAttribute(PermissionContant.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey)); + logger.info("秘钥:".concat(key.get(RSAUtils.RSAPublicKey))); + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + + + UsernamePasswordToken token = new UsernamePasswordToken(username, password.toCharArray()); + token.setRememberMe(false); + try { + currentUser.login(token); + } catch (Exception e) { + e.printStackTrace(); + } + ShiroUser shiroUser = ShiroKit.getUser(); + super.getSession().setAttribute("shiroUser", shiroUser); + super.getSession().setAttribute("username", shiroUser.getAccount()); + + super.getSession().setAttribute(PermissionContant.SESSION_KEY, shiroUser.getId()); + + LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp())); + + ShiroKit.getSession().setAttribute("sessionFlag", true); + resultData.setData(new LoginResult(ShiroKit.getSession().getId().toString(), null)); + resultData.setMessage("登录成功"); + return resultData; + } + +} diff --git a/casic-web/src/main/resources/application.yml b/casic-web/src/main/resources/application.yml new file mode 100644 index 0000000..70cc33b --- /dev/null +++ b/casic-web/src/main/resources/application.yml @@ -0,0 +1,18 @@ +########################################################## +################## 所有profile共有的配置 ################# +########################################################## +spring: + profiles: + active: @activatedProperties@ + datasource: + driver-class-name: com.mysql.jdbc.Driver + jms: + pub-sub-domain: true + aop: + proxy-target-class: true #false为启用jdk默认动态代理,true为cglib动态代理 +################### mybatis-plus配置 ################### +################### guns配置 ################### +casic: + kaptcha-open: true #是否开启登录时验证码 (true/false) + file-upload-path: d:/tmp #文件上传目录(不配置的话为java.io.tmpdir目录) + nologin-urls: /user/login,/kaptcha,/config/baseConfig \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java new file mode 100644 index 0000000..4670df3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 集中器相关日志 + */ +public class ProjectDict extends AbstractDictMap { + public static final String PROJECT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + @Override + public void init() { + put("projectName","项目名称"); + put("projectSimpleName","项目简称"); + put("projectManager","项目经理"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java new file mode 100644 index 0000000..7981a17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dto; + +/** + * 用于设备类型展示 + * @author test203 + * @date 2020-04-03 + */ +public class DeviceTypeDto { + private Long id; + private String productName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java new file mode 100644 index 0000000..f254585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java @@ -0,0 +1,361 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.math.BigDecimal; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; + +/** + *

+ * 管理员表 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@TableName("sys_user") +public class Account extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + /** + * 头像 + */ + private String avatar; + /** + * 账号 + */ + private String account; + /** + * 密码 + */ + private String password; + /** + * md5密码盐 + */ + private String salt; + /** + * 名字 + */ + private String name; + /** + * 生日 + */ + private Date birthday; + /** + * 性别(1:男 2:女) + */ + private String sex; + /** + * 电子邮件 + */ + private String email; + /** + * 电话 + */ + private String phone; + /** + * 角色id + */ + private String roleid; + /** + * 部门id + */ + private Long deptid; + /** + * 状态(1:启用 2:冻结 3:删除) + */ + private String status; + /** + * 创建时间 + */ + private Date createtime; + /** + * 保留字段 + */ + private Integer version; + private String targetid; + private String targetname; + @TableField("password_sync") + private String passwordSync; + @TableField("IS_SYNC") + private Integer isSync; + private String simplename; + /** + * 同步组织ID + */ + @TableField("TARGET_DEPTID_SYNC") + private String targetDeptidSync; + @TableField("LOGIN_IP") + private String loginIp; + @TableField("LOGIN_MAC") + private String loginMac; + /** + * 最后在线时间 + */ + @TableField("LAST_TIME") + private Date lastTime; + /** + * 经度 + */ + @TableField("POSITION_LNG") + private BigDecimal positionLng; + /** + * 纬度 + */ + @TableField("POSITION_LAT") + private BigDecimal positionLat; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt() { + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getRoleid() { + return roleid; + } + + public void setRoleid(String roleid) { + this.roleid = roleid; + } + + public Long getDeptid() { + return deptid; + } + + public void setDeptid(Long deptid) { + this.deptid = deptid; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + public String getTargetid() { + return targetid; + } + + public void setTargetid(String targetid) { + this.targetid = targetid; + } + + public String getTargetname() { + return targetname; + } + + public void setTargetname(String targetname) { + this.targetname = targetname; + } + + public String getPasswordSync() { + return passwordSync; + } + + public void setPasswordSync(String passwordSync) { + this.passwordSync = passwordSync; + } + + public Integer getIsSync() { + return isSync; + } + + public void setIsSync(Integer isSync) { + this.isSync = isSync; + } + + public String getSimplename() { + return simplename; + } + + public void setSimplename(String simplename) { + this.simplename = simplename; + } + + public String getTargetDeptidSync() { + return targetDeptidSync; + } + + public void setTargetDeptidSync(String targetDeptidSync) { + this.targetDeptidSync = targetDeptidSync; + } + + public String getLoginIp() { + return loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getLoginMac() { + return loginMac; + } + + public void setLoginMac(String loginMac) { + this.loginMac = loginMac; + } + + public Date getLastTime() { + return lastTime; + } + + public void setLastTime(Date lastTime) { + this.lastTime = lastTime; + } + + public BigDecimal getPositionLng() { + return positionLng; + } + + public void setPositionLng(BigDecimal positionLng) { + this.positionLng = positionLng; + } + + public BigDecimal getPositionLat() { + return positionLat; + } + + public void setPositionLat(BigDecimal positionLat) { + this.positionLat = positionLat; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", avatar=" + avatar + + ", account=" + account + + ", password=" + password + + ", salt=" + salt + + ", name=" + name + + ", birthday=" + birthday + + ", sex=" + sex + + ", email=" + email + + ", phone=" + phone + + ", roleid=" + roleid + + ", deptid=" + deptid + + ", status=" + status + + ", createtime=" + createtime + + ", version=" + version + + ", targetid=" + targetid + + ", targetname=" + targetname + + ", passwordSync=" + passwordSync + + ", isSync=" + isSync + + ", simplename=" + simplename + + ", targetDeptidSync=" + targetDeptidSync + + ", loginIp=" + loginIp + + ", loginMac=" + loginMac + + ", lastTime=" + lastTime + + ", positionLng=" + positionLng + + ", positionLat=" + positionLat + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java new file mode 100644 index 0000000..81516b7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -0,0 +1,110 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_batch") +public class Batch extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_number") + private Long batchNumber; + @TableField("batch_count") + private Long batchCount; + @TableField("contract_id") + private Long contractId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("task_id") + private Long taskId; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(Long batchNumber) { + this.batchNumber = batchNumber; + } + + public Long getBatchCount() { + return batchCount; + } + + public void setBatchCount(Long batchCount) { + this.batchCount = batchCount; + } + + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Batch{" + + "id=" + id + + ", batchNumber=" + batchNumber + + ", batchCount=" + batchCount + + ", contractId=" + contractId + + ", taskId=" + taskId + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java new file mode 100644 index 0000000..893a1ed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -0,0 +1,186 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_contract") +public class Contract extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("contract_number") + private String contractNumber; + @TableField("contract_name") + private String contractName; + @TableField("contract_content") + private String contractContent; + @TableField("contract_amount") + private String contractAmount; + @TableField("external_project_apply") + private String externalProjectApply; + @TableField("external_contract_apply") + private String externalContractApply; + @TableField("principal") + private String principal; + @TableField("external_check_apply") + private String externalCheckApply; + @TableField("contract_factory") + private String contractFactory; + @TableField("createtime") + private Date createtime; + @TableField(exist = false) + private String paymentStatus; + @TableField(exist = false) + private String netFlow; + @TableField("deptid") + private String deptid; + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getContractName() { + return contractName; + } + + public void setContractName(String contractName) { + this.contractName = contractName; + } + + public String getContractContent() { + return contractContent; + } + + public void setContractContent(String contractContent) { + this.contractContent = contractContent; + } + + public String getContractAmount() { + return contractAmount; + } + + public void setContractAmount(String contractAmount) { + this.contractAmount = contractAmount; + } + + public String getExternalProjectApply() { + return externalProjectApply; + } + + public void setExternalProjectApply(String externalProjectApply) { + this.externalProjectApply = externalProjectApply; + } + + public String getExternalContractApply() { + return externalContractApply; + } + + public void setExternalContractApply(String externalContractApply) { + this.externalContractApply = externalContractApply; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalCheckApply() { + return externalCheckApply; + } + + public void setExternalCheckApply(String externalCheckApply) { + this.externalCheckApply = externalCheckApply; + } + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public String getContractFactory() { + return contractFactory; + } + + public void setContractFactory(String contractFactory) { + this.contractFactory = contractFactory; + } + + public String getNetFlow() { + return netFlow; + } + + public void setNetFlow(String netFlow) { + this.netFlow = netFlow; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Contract{" + + "contractNumber=" + contractNumber + + ", contractName=" + contractName + + ", contractContent=" + contractContent + + ", contractAmount=" + contractAmount + + ", externalProjectApply=" + externalProjectApply + + ", externalContractApply=" + externalContractApply + + ", principal=" + principal + + ", id=" + id + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java new file mode 100644 index 0000000..8718d91 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -0,0 +1,150 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_device") +public class Device extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_id") + private Long batchId; + private String devcode; + @TableField("devtype_id") + private Long devtypeId; + @TableField("is_send") + private String isSend; + private String longitude; + private String latitude; + @TableField("install_height") + private String installHeight; + private String iccid; + private Long imei; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public Long getImei() { + return imei; + } + + public void setImei(Long imei) { + this.imei = imei; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Device{" + + "id=" + id + + ", batchId=" + batchId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", isSend=" + isSend + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", installHeight=" + installHeight + + ", iccid=" + iccid + + ", imei=" + imei + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java new file mode 100644 index 0000000..870c36f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_payments") +public class Payments extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @TableField("paytime") + private Date paytime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getPaytime() { + return paytime; + } + + public void setPaytime(Date paytime) { + this.paytime = paytime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Payments{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", paytime=" + paytime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java new file mode 100644 index 0000000..ae6b585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -0,0 +1,285 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_device_type") +public class ProductDeviceType extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 产品名称 + */ + @TableField("product_name") + private String productName; + /** + * 产品型号 + */ + @TableField("product_model") + private String productModel; + + /** + * 通讯版本号 + */ + @TableField("communication_version") + private String communicationVersion; + + /** + * 产品类型 + */ + @TableField("product_type") + private String productType; + + /** + * 整机版本号 + */ + @TableField("machine_version") + private String machineVersion; + /** + * 硬件版本号 + */ + @TableField("hardware_version") + private String hardwareVersion; + /** + * 软件版本号 + */ + @TableField("software_version") + private String softwareVersion; + /** + * 设计归档 + */ + @TableField("design_archive") + private String designArchive; + /** + * 批产归档 + */ + @TableField("batch_filing") + private String batchFiling; + /** + * 状态 + */ + @TableField("status") + private Integer status; + /** + * 性能指标 + */ + @TableField("kpi") + private String kpi; + /** + * 批产负责人 + */ + @TableField("principal") + private String principal; + /** + * 定额汇总表 + */ + @TableField("quota_summary") + private String quotaSummary; + + /** + * 权属部门 + */ + @TableField("deptid") + private String deptid; + + /** + * 备注 + */ + @TableField("descn") + private String descn; + + @TableField("createtime") + private Date createtime; + + + @TableField(exist = false) + private String statusFmt; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } + + public String getMachineVersion() { + return machineVersion; + } + + public void setMachineVersion(String machineVersion) { + this.machineVersion = machineVersion; + } + + public String getHardwareVersion() { + return hardwareVersion; + } + + public void setHardwareVersion(String hardwareVersion) { + this.hardwareVersion = hardwareVersion; + } + + public String getSoftwareVersion() { + return softwareVersion; + } + + public void setSoftwareVersion(String softwareVersion) { + this.softwareVersion = softwareVersion; + } + + public String getDesignArchive() { + return designArchive; + } + + public void setDesignArchive(String designArchive) { + this.designArchive = designArchive; + } + + public String getBatchFiling() { + return batchFiling; + } + + public void setBatchFiling(String batchFiling) { + this.batchFiling = batchFiling; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getKpi() { + return kpi; + } + + public void setKpi(String kpi) { + this.kpi = kpi; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public String getQuotaSummary() { + return quotaSummary; + } + + public void setQuotaSummary(String quotaSummary) { + this.quotaSummary = quotaSummary; + } + + public String getStatusFmt() { + return statusFmt; + } + + public void setStatusFmt(String statusFmt) { + this.statusFmt = statusFmt; + } + + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getProductType() { + return productType; + } + + public void setProductType(String productType) { + this.productType = productType; + } + + public String getCommunicationVersion() { + return communicationVersion; + } + + public void setCommunicationVersion(String communicationVersion) { + this.communicationVersion = communicationVersion; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductDeviceType{" + + "id=" + id + + ", productName=" + productName + + ", productModel=" + productModel + + ", machineVersion=" + machineVersion + + ", hardwareVersion=" + hardwareVersion + + ", softwareVersion=" + softwareVersion + + ", designArchive=" + designArchive + + ", batchFiling=" + batchFiling + + ", status=" + status + + ", kpi=" + kpi + + ", principal=" + principal + + ", quotaSummary=" + quotaSummary + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java new file mode 100644 index 0000000..b0fd924 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java @@ -0,0 +1,187 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_factory_information") +public class ProductFactoryInformation extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 厂家名称 + */ + @TableField("name") + private String name; + /** + * 厂家联系人 + */ + @TableField("person_name") + private String personName; + /** + * 地址 + */ + @TableField("address") + private String address; + /** + * 电话 + */ + @TableField("phone") + private String phone; + /** + * 开户行 + */ + @TableField("bank") + private String bank; + /** + * 税号 + */ + @TableField("tax_number") + private String taxNumber; + /** + * 在产设备 + */ + @TableField("producting_device") + private String productingDevice; + /** + * 设备报价表 + */ + @TableField("equipment_quotation") + private String equipmentQuotation; + + @TableField("createtime") + private Date createtime =new Date(); + + @TableField("deptid") + private String deptid; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPersonName() { + return personName; + } + + public void setPersonName(String personName) { + this.personName = personName; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getBank() { + return bank; + } + + public void setBank(String bank) { + this.bank = bank; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getProductingDevice() { + return productingDevice; + } + + public void setProductingDevice(String productingDevice) { + this.productingDevice = productingDevice; + } + + public String getEquipmentQuotation() { + return equipmentQuotation; + } + + public void setEquipmentQuotation(String equipmentQuotation) { + this.equipmentQuotation = equipmentQuotation; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductFactoryInformation{" + + "id=" + id + + ", name=" + name + + ", personName=" + personName + + ", address=" + address + + ", phone=" + phone + + ", bank=" + bank + + ", taxNumber=" + taxNumber + + ", productingDevice=" + productingDevice + + ", equipmentQuotation=" + equipmentQuotation + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java new file mode 100644 index 0000000..00cbc92 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -0,0 +1,99 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@TableName("product_project") +public class Project extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_name") + private String projectName; + @TableField("project_simple_name") + private String projectSimpleName; + @TableField("project_manager") + private String projectManager; + private String descn; + @TableField("createtime") + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getProjectManager() { + return projectManager; + } + + public void setProjectManager(String projectManager) { + this.projectManager = projectManager; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Project{" + + "id=" + id + + ", projectName=" + projectName + + ", projectSimpleName=" + projectSimpleName + + ", projectManager=" + projectManager + + ", descn=" + descn + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java new file mode 100644 index 0000000..658c2e1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java @@ -0,0 +1,126 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_reimburse") +public class Reimburse extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mi:ss") + @TableField("reimburse_time") + private Date reimburseTime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getReimburseTime() { + return reimburseTime; + } + + public void setReimburseTime(Date reimburseTime) { + this.reimburseTime = reimburseTime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Reimburse{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", reimburseTime=" + reimburseTime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java new file mode 100644 index 0000000..987efa7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java @@ -0,0 +1,141 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_task") +public class Task extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_id") + private Long projectId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("devmode_id") + private String devmodeId; + private Long devcount; + @TableField("delivery_time") + private Date deliveryTime; + private String demand; + private Date createtime; + @TableField(exist = false) + private String deliveryTimeFmt; + + @TableField(exist = false) + private Long taskId; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getProjectId() { + return projectId; + } + + public void setProjectId(Long projectId) { + this.projectId = projectId; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDevmodeId() { + return devmodeId; + } + + public void setDevmodeId(String devmodeId) { + this.devmodeId = devmodeId; + } + + public Long getDevcount() { + return devcount; + } + + public void setDevcount(Long devcount) { + this.devcount = devcount; + } + + public Date getDeliveryTime() { + return deliveryTime; + } + + public void setDeliveryTime(Date deliveryTime) { + this.deliveryTime = deliveryTime; + } + + public String getDemand() { + return demand; + } + + public void setDemand(String demand) { + this.demand = demand; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeliveryTimeFmt() { + return deliveryTimeFmt; + } + + public void setDeliveryTimeFmt(String deliveryTimeFmt) { + this.deliveryTimeFmt = deliveryTimeFmt; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Task{" + + "id=" + id + + ", projectId=" + projectId + + ", devtypeId=" + devtypeId + + ", devmodeId=" + devmodeId + + ", devcount=" + devcount + + ", deliveryTime=" + deliveryTime + + ", demand=" + demand + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java new file mode 100644 index 0000000..7785de5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface IAccountService extends IService { + + /** + * 根据用户名查用户 + * @param userName + * @return + */ + Account findUserByName(String userName); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java new file mode 100644 index 0000000..d8b5e87 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IContractService extends IService { + List selectPageList(Page page, String keyword1, String keyword2, String keyword3); + List reportExport(String keyword1, String keyword2, String keyword3); + void importContract( List contracts); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java new file mode 100644 index 0000000..0f2d6e0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IPaymentsService extends IService { + + boolean validate(Long proId,String money,String reorder); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java new file mode 100644 index 0000000..71490df --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -0,0 +1,62 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductDeviceTypeService extends IService { + + /** + * 批量导入设备类型列表 + * @param results + */ + void importDeviceType(List results); + + /** + * 导出列表 + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List reportExport(String keyword1,String keyword2,String keyword3); + + + /** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectPageDataScope(DataScope dataScope, Page page, + String keyword1, String keyword2, String keyword3); + + /** + * 获取在产的设备类型 + * @return + */ + List selectDeviceTypeList(); + + /** + * 根据产品型号获取产品 + * @param deviceModel + * @return + */ + ProductDeviceType selectDeviceTypeByModel(String deviceModel); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java new file mode 100644 index 0000000..455f60a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductFactoryInformationService extends IService { + /** + * 根据条件导出列表 + * @param keyword1 + * @param keyword2 + * @return + */ + List reportExport(String keyword1, String keyword2); + + + /** + * 导入 + * @param results + */ + void importDeviceType(List results); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java new file mode 100644 index 0000000..3c27bd1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface IProjectService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java new file mode 100644 index 0000000..ee0a55c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IReimburseService extends IService { + boolean validate(Long proId,String money,String reorder); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java new file mode 100644 index 0000000..09ce653 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.dao.AccountMapper; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.stereotype.Service; + +/** + *

+ * 管理员表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@Service +public class AccountServiceImpl extends ServiceImpl implements IAccountService { + + @Override + public Account findUserByName(String userName) { + + EntityWrapper userEntityWrapper = new EntityWrapper<>(); + userEntityWrapper.eq("name",userName); + userEntityWrapper.eq("status","1"); + return this.selectOne(userEntityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java new file mode 100644 index 0000000..dd04da0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java @@ -0,0 +1,138 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.shiro.ShiroUser; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ContractMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IPaymentsService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ContractServiceImpl extends ServiceImpl implements IContractService { + @Autowired + private IPaymentsService paymentsService; + @Autowired + private ICommonPermissionService permissionService; + @Autowired + private IAccountService userService; + @Value("${casic.producerName}") + private String producerName; + @Value("${casic.repairName}") + private String repairName; + + @Override + public List selectPageList(Page page, String keyword1, String keyword2, String keyword3) { + +// EntityWrapper query = new EntityWrapper<>(); +// if (ToolUtil.isNotEmpty(keyword1)) { +// query.like("contract_factory", keyword1); +// } +// if (ToolUtil.isNotEmpty(keyword3)) { +// query.like("contract_number", keyword3); +// } +// List contractList = this.selectPage(page, query).getRecords(); +// contractList.forEach(contract -> { +// contract.setPaymentStatus(getPaymentStatus(contract)); +// String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" +// + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" +// + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); +// contract.setNetFlow(netFlowStr); +// +// }); +// return contractList; + + + List contractList = new ArrayList<>(); + DataScope dataScope = permissionService.getCurrUserDataScope(); + ShiroUser currentUser = permissionService.getCurrLoginUser(); + if (currentUser.getRoleTips().contains(producerName) || currentUser.getRoleTips().contains(repairName)) { + contractList = this.baseMapper.findContractList(dataScope,page, currentUser.getName(), keyword1, keyword2, keyword3); + } else { + contractList = this.baseMapper.findContractList(dataScope,page, "", keyword1, keyword2, keyword3); + } + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + + }); + return contractList; + } + + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + + + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("contractFactory", keyword1); + } + if (ToolUtil.isNotEmpty(keyword3)) { + query.like("contract_number", keyword3); + } + + List contractList = this.selectList(query); + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); +// permissionService.findInDictByCode("applyStatus") + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + }); + + return contractList; + } + + @Override + public void importContract(List contracts) { + contracts.forEach(contract -> { + EntityWrapper query = new EntityWrapper<>(); + query.eq("contract_number", contract.getContractNumber()); + this.delete(query); + Account user = userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); + this.insert(contract); + }); + } + + public String getPaymentStatus(Contract contract) { + Map paraMap = new HashMap<>(); + paraMap.put("pro_id", contract.getId()); + List paymentsList = paymentsService.selectByMap(paraMap); + float sum = 0; + for (Payments payments : paymentsList) { + sum = sum + (ToolUtil.isNotEmpty(payments.getMoney()) ? Float.parseFloat(payments.getMoney()) : 0); + } + DecimalFormat df = new DecimalFormat("0"); + return sum + "," + df.format(100 * sum / Float.valueOf(contract.getContractAmount())) + "%"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java new file mode 100644 index 0000000..0c125d8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PaymentsMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class PaymentsServiceImpl extends ServiceImpl implements IPaymentsService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money,String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List paymentsList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Payments payments : paymentsList) { + if(reorder.equals(payments.getReorder())) continue; + total += ToolUtil.isNotEmpty(payments.getMoney()) ? + Long.valueOf(payments.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java new file mode 100644 index 0000000..ac6d447 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductDeviceTypeMapper; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.swing.text.html.parser.Entity; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductDeviceTypeServiceImpl extends ServiceImpl implements IProductDeviceTypeService { + + @Autowired + private ICommonPermissionService permissionService; + + @Transactional(rollbackFor = Exception.class) + @Override + public void importDeviceType(List results) { + + for (ProductDeviceType productDeviceType : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + this.baseMapper.delete(wrapper); + this.baseMapper.insert(productDeviceType); + } + } + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + wrapper.like("principal", keyword3); + } + List productDeviceTypes = this.selectList(wrapper); + for (ProductDeviceType productDeviceType : productDeviceTypes) { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + } + return productDeviceTypes; + } + + @Override + public List selectPageDataScope(DataScope dataScope, Page page, String keyword1, String keyword2, String keyword3) { + + List productDeviceTypeList = this.baseMapper.selectDataScopePage(dataScope, page, keyword1, keyword2, keyword3); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + return productDeviceTypeList; + + } + + @Override + public List selectDeviceTypeList() { + return this.baseMapper.selectDeviceTypeList(); + } + + + @Override + public ProductDeviceType selectDeviceTypeByModel(String deviceModel) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("product_model",deviceModel); + return this.selectOne(entityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java new file mode 100644 index 0000000..efe4410 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java @@ -0,0 +1,50 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductFactoryInformationMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductFactoryInformationServiceImpl extends ServiceImpl implements IProductFactoryInformationService { + + @Override + public List reportExport(String keyword1, String keyword2) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.like("producting_device", keyword2); + } + List productFactoryInformations = this.selectList(wrapper); + + return productFactoryInformations; + } + + + @Transactional(rollbackFor=Exception.class) + @Override + public void importDeviceType(List results) { + for (ProductFactoryInformation productFactoryInformation : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + delete(wrapper); + this.baseMapper.insert(productFactoryInformation); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java new file mode 100644 index 0000000..34655b0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.dao.ProjectMapper; +import com.casic.missiles.modular.system.service.IProjectService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@Service +public class ProjectServiceImpl extends ServiceImpl implements IProjectService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java new file mode 100644 index 0000000..5e8b77b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java @@ -0,0 +1,48 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.dao.ReimburseMapper; +import com.casic.missiles.modular.system.service.IReimburseService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ReimburseServiceImpl extends ServiceImpl implements IReimburseService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money, String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List reimburseList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Reimburse reimburse : reimburseList) { + if (reorder.equals(reimburse.getReorder())) continue; + total += ToolUtil.isNotEmpty(reimburse.getMoney()) ? + Long.valueOf(reimburse.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java new file mode 100644 index 0000000..d5ffadb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java @@ -0,0 +1,235 @@ +package com.casic.missiles.modular.system.util; + +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; + +import java.util.*; + +/** + * @author test203 + * @since 2020-04-06 + */ +public class DeviceUtil { + private final static String factoryCode = "20"; + private final static String wellExcludeCode = "4120"; + private final static String loraDevice = "A"; + private static Map devTypeCountHashMap = new HashMap(); + + static { + devTypeCountHashMap.put("电子标识器", 99999L); + devTypeCountHashMap.put("井盖状态监测仪", 65534L); + devTypeCountHashMap.put("灯箱控制器", 65535L); + devTypeCountHashMap.put("单灯控制器(单路)", 65535L); + devTypeCountHashMap.put("单灯控制器(双路)", 65535L); + devTypeCountHashMap.put("数据集中器", 255L); + devTypeCountHashMap.put("有害气体监测仪", 999L); + } + + public static List createDevCodes(ProductDeviceType deviceType, List batches) { + List deviceList = new ArrayList<>(); + try { + if ("电子标识器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 年份XX 批次号XX 编号XXXXX + String devCode = deviceType.getProductType() + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%05d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("井盖状态监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + String wellCode4 = String.format("%04x", i); + if (wellExcludeCode.equals(wellCode4)) { + continue; + } + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + wellCode4; + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("灯箱控制器".equals(deviceType.getProductName()) || + "单灯控制器(单路)".equals(deviceType.getProductName()) || + "单灯控制器(双路)".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("数据集中器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("有害气体监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型WS2000X- 年份XX 批次序号XXXX 编号XXX + String devCode = deviceType.getProductType() + + getYearFmt() + + String.format("%04d", batch.getBatchNumber()) + + String.format("%03d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } + //其他设备类型分lora和非lora版本 + else { + if (loraDevice.equals(deviceType.getCommunicationVersion())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } else { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return deviceList; + } + + + public static Map validate(ProductDeviceType deviceType, List batches, Task task) { + Map resultMap = new HashMap<>(); + boolean success = true; + String msg = ""; + long devSum = null != task ? task.getDevcount() : 0; + long devcount = 0, batchCountMax; + batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? + 0 : devTypeCountHashMap.get(deviceType.getProductName()); + if (0 == batchCountMax) { + if (deviceType.getProductModel().indexOf(loraDevice) + == deviceType.getProductModel().length() - 1) { + batchCountMax = 255; + } else { + batchCountMax = 9999; + } + } + for (Batch batch : batches) { + if (batch.getBatchCount() > batchCountMax) { + success = false; + msg = batch.getBatchNumber() + "批次号数量超过了最大范围" + batchCountMax; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + devcount += batch.getBatchCount(); + } + if (devcount != devSum) { + return returnMsg(); + } + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + + public static Map returnMsg() { + Map resultMap = new HashMap<>(); + resultMap.put("success", false); + resultMap.put("msg", "所有批次数量之和与任务中设备数量不一致!"); + return resultMap; + } + + /** + * 获取编码中的年份 + * + * @return + */ + public static String getYearFmt() { + + return DateUtil.format(new Date(), "yyyy").substring(2); + } + + + /** + * 比较2个map + * + * @param batchMap + * @param batchMap1 + * @return + */ + public static boolean equalMap(Map batchMap, Map batchMap1) { + if (batchMap.size() != batchMap1.size()) { + return false; + } + Iterator iter1 = batchMap.keySet().iterator(); + while (iter1.hasNext()) { + Long map1key = iter1.next(); + String map1value = batchMap.get(map1key).toString(); + String map2value = batchMap1.get(map1key).toString(); + if (!map1value.equals(map2value)) { + return false; + } + } + return true; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java new file mode 100644 index 0000000..33c3535 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java @@ -0,0 +1,43 @@ +package com.casic.missiles.modular.system.util; + +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; + +public class FileUtil { + public static File createFile(String path) throws IOException { + File file = new File(path); + if (!file.exists()) { + file.getParentFile().mkdirs(); + file.createNewFile(); + } + return file; + } + + + public static void downloadLocalFile(HttpServletResponse response,String path, String fileName) throws IOException { + File file = new File(path); + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", "attachment; filename=\"" + URLEncoder.encode(fileName, "UTF-8") + "\""); + response.setContentLength((int) file.length()); + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java new file mode 100644 index 0000000..341d3d1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.task.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.task.service.IBatchService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 批次控制器 + * + * @author dev + * @Date 2020-03-27 15:29:55 + */ +@Controller +@RequestMapping("/batch") +public class BatchController extends BaseController { + + + @Autowired + private IBatchService batchService; + + + /** + * 获取批次列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return batchService.selectList(null); + } + + /** + * 获取批次分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = batchService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增批次并生成设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + @Transactional + public Object add(@RequestBody List batches, Task task) { + + return batchService.addBatchAndDevices(batches,task); + + } + + /** + * 删除批次 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String batchId) { + batchService.deleteById(batchId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("batchIds") List batchIds) { + batchService.deleteBatchIds(batchIds); + return ResponseData.success(); + } + + /** + * 修改批次 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Batch batch) { + batchService.updateById(batch); + return ResponseData.success(); + } + + + /** + * 根据设备类型id + * 查找批次号 + */ + @RequestMapping(value = "/getBatchNumber") + @ResponseBody + public Object getBatchNumber(Long devtypeId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.orderBy("id", false); + Batch batch = batchService.selectOne(entityWrapper); + return ResponseData.success(200, "", batch != null ? batch.getBatchNumber() + 1 : 1); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java new file mode 100644 index 0000000..f463168 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java @@ -0,0 +1,102 @@ +package com.casic.missiles.modular.task.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * 任务控制器 + * + * @author dev + * @Date 2020-03-27 15:28:26 + */ +@Controller +@RequestMapping("/task") +public class TaskController extends BaseController { + + + @Autowired + private ITaskService taskService; + + + /** + * 获取任务列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return taskService.selectList(null); + } + + /** + * 获取任务分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = taskService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增任务 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + taskService.insert(task); + return ResponseData.success(); + } + + /** + * 删除任务 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String taskId) { + taskService.deleteById(taskId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("taskIds") List taskIds) { + taskService.deleteBatchIds(taskIds); + return ResponseData.success(); + } + + /** + * 修改任务 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + taskService.updateById(task); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java new file mode 100644 index 0000000..04c7ef8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.task.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IBatchService extends IService { + + /** + * 添加批次和生成设备 + * @param batches + * @param task + * @return + */ + ResponseData addBatchAndDevices(List batches, Task task); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java new file mode 100644 index 0000000..50e1d37 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.task.service; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface ITaskService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java new file mode 100644 index 0000000..a435e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dao.BatchMapper; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.DeviceUtil; +import com.casic.missiles.modular.task.service.IBatchService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class BatchServiceImpl extends ServiceImpl implements IBatchService { + + @Autowired + private IProductDeviceTypeService deviceTypeService; + @Autowired + private IDeviceService deviceService; + + @Transactional(rollbackFor=Exception.class) + @Override + public ResponseData addBatchAndDevices(List batches, Task task) { + //提交前先验证是否已经存在,若存在且批次号或每批数量改变先删除 + try { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("task_id", task.getTaskId()); + List batchList = this.selectList(entityWrapper); + Map batchMap= new HashMap<>(); + Map batchMap1= new HashMap<>(); + List batchIdlist = new ArrayList<>(); + for (Batch batch : batches) { + batchMap.put(batch.getBatchNumber(),batch.getBatchCount()); + batch.setTaskId(task.getTaskId()); + batch.setDevtypeId(task.getDevtypeId()); + batchIdlist.add(batch.getId()); + } + for (Batch batch : batchList) { + batchMap1.put(batch.getBatchNumber(),batch.getBatchCount()); + } + + //若批次号和数量不变只更新批次表 + if (DeviceUtil.equalMap(batchMap, batchMap1)) { + this.insertOrUpdateBatch(batches); + } + //若批次号和数量更新,更新设备表(删除批次相关的设备后,写入新的设备) + else { + + //验证设备数量是否合格 + ProductDeviceType deviceType = deviceTypeService.selectDeviceTypeByModel(task.getDevmodeId()); + Map resultMap = DeviceUtil.validate(deviceType, batches, task); + if (!Boolean.valueOf(resultMap.get("success").toString())) { + return ResponseData.error(400, resultMap.get("msg").toString()); + } + //删除批次 + EntityWrapper batchEntityWrapper = new EntityWrapper<>(); + batchEntityWrapper.eq("task_id", task.getTaskId()); + this.delete(batchEntityWrapper); + //删除设备 + EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); + deviceEntityWrapper.in("batch_id", batchIdlist); + deviceEntityWrapper.eq("devtype_id",task.getDevtypeId()); + deviceService.delete(deviceEntityWrapper); + + //写入批次 + this.insertBatch(batches); + //写入设备 + List deviceList = DeviceUtil.createDevCodes(deviceType, batches); + deviceService.insertBatch(deviceList); + } + } catch (Exception e) { + e.printStackTrace(); + } + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java new file mode 100644 index 0000000..fac60bb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.dao.TaskMapper; +import com.casic.missiles.modular.task.service.ITaskService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class TaskServiceImpl extends ServiceImpl implements ITaskService { + +} diff --git a/casic-web/pom.xml b/casic-web/pom.xml new file mode 100644 index 0000000..f9f1c84 --- /dev/null +++ b/casic-web/pom.xml @@ -0,0 +1,300 @@ + + + 4.0.0 + + com.casic + casic-product-device + ../pom.xml + 1.0.0-SNAPSHOT + + casic-web + ${pro.version} + jar + casic-web + casic web启动入口 + + + + dev + + true + + + dev + true + 3600 + 3600 + + + + + test + + test + false + 180 + 180 + + + + + prod + + prod + true + 3600 + 3600 + + + + + + + + + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-admin-core + ${casic.version} + + + com.casic + casic-admin-area + ${casic.version} + + + + + + + + + + com.casic + casic-device + ${pro.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-cache + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + org.springframework.boot + spring-boot-devtools + true + + + + + + org.apache.shiro + shiro-core + + + slf4j-api + org.slf4j + + + + + org.apache.shiro + shiro-spring + + + org.apache.shiro + shiro-ehcache + + + slf4j-api + org.slf4j + + + + + org.ehcache + ehcache + ${ehcache.version} + + + + commons-io + commons-io + + + com.github.penggle + kaptcha + + + com.google.zxing + core + + + com.ibeetl + beetl + + + org.apache.commons + commons-lang3 + + + com.oracle + ojdbc6 + ${oracle.version} + + + org.codehaus.groovy + groovy-all + true + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + org.apache.maven.plugins + maven-jar-plugin + + + + /config/** + **/MockController.class + + + + + + + + + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + maven-assembly-plugin + + + false + + src/main/build/package.xml + + + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-resources-plugin + 2.6 + + + ${resource.delimiter} + + true + + + + copy-resources + validate + + copy-resources + + + ${project.build.outputDirectory} + + + + src/main/resources + true + + + + + + + + + + src/main/webapp + + + src/main/resources + + + src/main/java + + **/*.xml + + true + + + + + diff --git "a/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" "b/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" new file mode 100644 index 0000000..9656df2 --- /dev/null +++ "b/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" @@ -0,0 +1,4 @@ +@echo off +title 智慧城管 +java -jar guns-web-1.0.0-SNAPSHOT.jar +@pause diff --git a/casic-web/src/main/build/package.xml b/casic-web/src/main/build/package.xml new file mode 100644 index 0000000..68b7576 --- /dev/null +++ b/casic-web/src/main/build/package.xml @@ -0,0 +1,26 @@ + + + package + + zip + + true + + + src/main/bin + / + + + src/main/resources/config + / + + + ${project.build.directory} + / + + *.jar + + + + + \ No newline at end of file diff --git a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java new file mode 100644 index 0000000..0b0c3fb --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java @@ -0,0 +1,35 @@ +package com.casic.missiles; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * SpringBoot方式启动类 + * + * @author casic + * @Date 2017/5/21 12:06 + */ +@SpringBootApplication +@ServletComponentScan +@EnableTransactionManagement(proxyTargetClass = true) +public class CasicApplication { + + private static final Logger logger = LoggerFactory.getLogger(CasicApplication.class); + + public static void main(String[] args){ + SpringApplication.run(CasicApplication.class, args); + logger.info("GunsApplication is success!"); + + } + +} + + + + + + diff --git a/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java new file mode 100644 index 0000000..269025c --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java @@ -0,0 +1,18 @@ +package com.casic.missiles; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.support.SpringBootServletInitializer; + +/** + * Guns Web程序启动类 + * + * @author fengshuonan + * @date 2017-05-21 9:43 + */ +public class CasicServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(CasicApplication.class); + } +} diff --git a/casic-web/src/main/java/com/casic/missiles/controller/MockController.java b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java new file mode 100644 index 0000000..a8285e8 --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java @@ -0,0 +1,83 @@ +package com.casic.missiles.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.log.LogManager; +import com.casic.missiles.core.log.factory.LogTaskFactory; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.core.shiro.ShiroUser; +import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.contant.PermissionContant; +import com.casic.missiles.modular.system.dto.LoginResult; +import org.apache.commons.lang3.StringUtils; +import org.apache.shiro.authc.UsernamePasswordToken; +import org.apache.shiro.subject.Subject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.servlet.http.HttpServletRequest; +import java.security.NoSuchAlgorithmException; +import java.util.Map; + +import static com.casic.missiles.core.support.HttpKit.getIp; + +/** + * 仅为mock登录使用 + */ +@Controller +@RequestMapping("/route") +public class MockController extends BaseController { + private static final Logger logger = LoggerFactory.getLogger(MockController.class); + + /** + * 获取mockToken + */ + @GetMapping("/mockToken") + @ResponseBody + public Object subdepts(HttpServletRequest request, String username, String password) { + ShiroKit.getSession().setAttribute(PermissionContant.IS_APP, false); + SuccessResponseData resultData = new SuccessResponseData(); + if (ToolUtil.isOneEmpty(username, password)) { + username = "admin"; + password = "1111111a"; + } + Subject currentUser = ShiroKit.getSubject(); + + try { + Map key = RSAUtils.genKeyPair(); + ShiroKit.getSession().setAttribute(PermissionContant.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey)); + logger.info("秘钥:".concat(key.get(RSAUtils.RSAPublicKey))); + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + + + UsernamePasswordToken token = new UsernamePasswordToken(username, password.toCharArray()); + token.setRememberMe(false); + try { + currentUser.login(token); + } catch (Exception e) { + e.printStackTrace(); + } + ShiroUser shiroUser = ShiroKit.getUser(); + super.getSession().setAttribute("shiroUser", shiroUser); + super.getSession().setAttribute("username", shiroUser.getAccount()); + + super.getSession().setAttribute(PermissionContant.SESSION_KEY, shiroUser.getId()); + + LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp())); + + ShiroKit.getSession().setAttribute("sessionFlag", true); + resultData.setData(new LoginResult(ShiroKit.getSession().getId().toString(), null)); + resultData.setMessage("登录成功"); + return resultData; + } + +} diff --git a/casic-web/src/main/resources/application.yml b/casic-web/src/main/resources/application.yml new file mode 100644 index 0000000..70cc33b --- /dev/null +++ b/casic-web/src/main/resources/application.yml @@ -0,0 +1,18 @@ +########################################################## +################## 所有profile共有的配置 ################# +########################################################## +spring: + profiles: + active: @activatedProperties@ + datasource: + driver-class-name: com.mysql.jdbc.Driver + jms: + pub-sub-domain: true + aop: + proxy-target-class: true #false为启用jdk默认动态代理,true为cglib动态代理 +################### mybatis-plus配置 ################### +################### guns配置 ################### +casic: + kaptcha-open: true #是否开启登录时验证码 (true/false) + file-upload-path: d:/tmp #文件上传目录(不配置的话为java.io.tmpdir目录) + nologin-urls: /user/login,/kaptcha,/config/baseConfig \ No newline at end of file diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml new file mode 100644 index 0000000..99216e3 --- /dev/null +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -0,0 +1,24 @@ +server: + port: 8083 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://139.198.17.115:3000/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: root + initial-size: 2 + min-idle: 1 +#flowable数据源和多数据源配置 +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /user/login,/user/appLogin,/kaptcha,/config/baseConfig,/route/mockToken,/process/processDiagram,/enterprise2/list,/enterprise2/report,/enterprise3/list,enterprise3/report + file-upload-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\upload\ + file-download-path: D:\tmp\ + producerName: producer + repairName: repair +logging: + level.root: info + level.com.casic: debug + path: logs/ + file: missiles.log + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java new file mode 100644 index 0000000..4670df3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 集中器相关日志 + */ +public class ProjectDict extends AbstractDictMap { + public static final String PROJECT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + @Override + public void init() { + put("projectName","项目名称"); + put("projectSimpleName","项目简称"); + put("projectManager","项目经理"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java new file mode 100644 index 0000000..7981a17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dto; + +/** + * 用于设备类型展示 + * @author test203 + * @date 2020-04-03 + */ +public class DeviceTypeDto { + private Long id; + private String productName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java new file mode 100644 index 0000000..f254585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java @@ -0,0 +1,361 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.math.BigDecimal; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; + +/** + *

+ * 管理员表 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@TableName("sys_user") +public class Account extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + /** + * 头像 + */ + private String avatar; + /** + * 账号 + */ + private String account; + /** + * 密码 + */ + private String password; + /** + * md5密码盐 + */ + private String salt; + /** + * 名字 + */ + private String name; + /** + * 生日 + */ + private Date birthday; + /** + * 性别(1:男 2:女) + */ + private String sex; + /** + * 电子邮件 + */ + private String email; + /** + * 电话 + */ + private String phone; + /** + * 角色id + */ + private String roleid; + /** + * 部门id + */ + private Long deptid; + /** + * 状态(1:启用 2:冻结 3:删除) + */ + private String status; + /** + * 创建时间 + */ + private Date createtime; + /** + * 保留字段 + */ + private Integer version; + private String targetid; + private String targetname; + @TableField("password_sync") + private String passwordSync; + @TableField("IS_SYNC") + private Integer isSync; + private String simplename; + /** + * 同步组织ID + */ + @TableField("TARGET_DEPTID_SYNC") + private String targetDeptidSync; + @TableField("LOGIN_IP") + private String loginIp; + @TableField("LOGIN_MAC") + private String loginMac; + /** + * 最后在线时间 + */ + @TableField("LAST_TIME") + private Date lastTime; + /** + * 经度 + */ + @TableField("POSITION_LNG") + private BigDecimal positionLng; + /** + * 纬度 + */ + @TableField("POSITION_LAT") + private BigDecimal positionLat; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt() { + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getRoleid() { + return roleid; + } + + public void setRoleid(String roleid) { + this.roleid = roleid; + } + + public Long getDeptid() { + return deptid; + } + + public void setDeptid(Long deptid) { + this.deptid = deptid; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + public String getTargetid() { + return targetid; + } + + public void setTargetid(String targetid) { + this.targetid = targetid; + } + + public String getTargetname() { + return targetname; + } + + public void setTargetname(String targetname) { + this.targetname = targetname; + } + + public String getPasswordSync() { + return passwordSync; + } + + public void setPasswordSync(String passwordSync) { + this.passwordSync = passwordSync; + } + + public Integer getIsSync() { + return isSync; + } + + public void setIsSync(Integer isSync) { + this.isSync = isSync; + } + + public String getSimplename() { + return simplename; + } + + public void setSimplename(String simplename) { + this.simplename = simplename; + } + + public String getTargetDeptidSync() { + return targetDeptidSync; + } + + public void setTargetDeptidSync(String targetDeptidSync) { + this.targetDeptidSync = targetDeptidSync; + } + + public String getLoginIp() { + return loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getLoginMac() { + return loginMac; + } + + public void setLoginMac(String loginMac) { + this.loginMac = loginMac; + } + + public Date getLastTime() { + return lastTime; + } + + public void setLastTime(Date lastTime) { + this.lastTime = lastTime; + } + + public BigDecimal getPositionLng() { + return positionLng; + } + + public void setPositionLng(BigDecimal positionLng) { + this.positionLng = positionLng; + } + + public BigDecimal getPositionLat() { + return positionLat; + } + + public void setPositionLat(BigDecimal positionLat) { + this.positionLat = positionLat; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", avatar=" + avatar + + ", account=" + account + + ", password=" + password + + ", salt=" + salt + + ", name=" + name + + ", birthday=" + birthday + + ", sex=" + sex + + ", email=" + email + + ", phone=" + phone + + ", roleid=" + roleid + + ", deptid=" + deptid + + ", status=" + status + + ", createtime=" + createtime + + ", version=" + version + + ", targetid=" + targetid + + ", targetname=" + targetname + + ", passwordSync=" + passwordSync + + ", isSync=" + isSync + + ", simplename=" + simplename + + ", targetDeptidSync=" + targetDeptidSync + + ", loginIp=" + loginIp + + ", loginMac=" + loginMac + + ", lastTime=" + lastTime + + ", positionLng=" + positionLng + + ", positionLat=" + positionLat + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java new file mode 100644 index 0000000..81516b7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -0,0 +1,110 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_batch") +public class Batch extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_number") + private Long batchNumber; + @TableField("batch_count") + private Long batchCount; + @TableField("contract_id") + private Long contractId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("task_id") + private Long taskId; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(Long batchNumber) { + this.batchNumber = batchNumber; + } + + public Long getBatchCount() { + return batchCount; + } + + public void setBatchCount(Long batchCount) { + this.batchCount = batchCount; + } + + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Batch{" + + "id=" + id + + ", batchNumber=" + batchNumber + + ", batchCount=" + batchCount + + ", contractId=" + contractId + + ", taskId=" + taskId + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java new file mode 100644 index 0000000..893a1ed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -0,0 +1,186 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_contract") +public class Contract extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("contract_number") + private String contractNumber; + @TableField("contract_name") + private String contractName; + @TableField("contract_content") + private String contractContent; + @TableField("contract_amount") + private String contractAmount; + @TableField("external_project_apply") + private String externalProjectApply; + @TableField("external_contract_apply") + private String externalContractApply; + @TableField("principal") + private String principal; + @TableField("external_check_apply") + private String externalCheckApply; + @TableField("contract_factory") + private String contractFactory; + @TableField("createtime") + private Date createtime; + @TableField(exist = false) + private String paymentStatus; + @TableField(exist = false) + private String netFlow; + @TableField("deptid") + private String deptid; + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getContractName() { + return contractName; + } + + public void setContractName(String contractName) { + this.contractName = contractName; + } + + public String getContractContent() { + return contractContent; + } + + public void setContractContent(String contractContent) { + this.contractContent = contractContent; + } + + public String getContractAmount() { + return contractAmount; + } + + public void setContractAmount(String contractAmount) { + this.contractAmount = contractAmount; + } + + public String getExternalProjectApply() { + return externalProjectApply; + } + + public void setExternalProjectApply(String externalProjectApply) { + this.externalProjectApply = externalProjectApply; + } + + public String getExternalContractApply() { + return externalContractApply; + } + + public void setExternalContractApply(String externalContractApply) { + this.externalContractApply = externalContractApply; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalCheckApply() { + return externalCheckApply; + } + + public void setExternalCheckApply(String externalCheckApply) { + this.externalCheckApply = externalCheckApply; + } + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public String getContractFactory() { + return contractFactory; + } + + public void setContractFactory(String contractFactory) { + this.contractFactory = contractFactory; + } + + public String getNetFlow() { + return netFlow; + } + + public void setNetFlow(String netFlow) { + this.netFlow = netFlow; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Contract{" + + "contractNumber=" + contractNumber + + ", contractName=" + contractName + + ", contractContent=" + contractContent + + ", contractAmount=" + contractAmount + + ", externalProjectApply=" + externalProjectApply + + ", externalContractApply=" + externalContractApply + + ", principal=" + principal + + ", id=" + id + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java new file mode 100644 index 0000000..8718d91 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -0,0 +1,150 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_device") +public class Device extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_id") + private Long batchId; + private String devcode; + @TableField("devtype_id") + private Long devtypeId; + @TableField("is_send") + private String isSend; + private String longitude; + private String latitude; + @TableField("install_height") + private String installHeight; + private String iccid; + private Long imei; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public Long getImei() { + return imei; + } + + public void setImei(Long imei) { + this.imei = imei; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Device{" + + "id=" + id + + ", batchId=" + batchId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", isSend=" + isSend + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", installHeight=" + installHeight + + ", iccid=" + iccid + + ", imei=" + imei + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java new file mode 100644 index 0000000..870c36f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_payments") +public class Payments extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @TableField("paytime") + private Date paytime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getPaytime() { + return paytime; + } + + public void setPaytime(Date paytime) { + this.paytime = paytime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Payments{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", paytime=" + paytime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java new file mode 100644 index 0000000..ae6b585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -0,0 +1,285 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_device_type") +public class ProductDeviceType extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 产品名称 + */ + @TableField("product_name") + private String productName; + /** + * 产品型号 + */ + @TableField("product_model") + private String productModel; + + /** + * 通讯版本号 + */ + @TableField("communication_version") + private String communicationVersion; + + /** + * 产品类型 + */ + @TableField("product_type") + private String productType; + + /** + * 整机版本号 + */ + @TableField("machine_version") + private String machineVersion; + /** + * 硬件版本号 + */ + @TableField("hardware_version") + private String hardwareVersion; + /** + * 软件版本号 + */ + @TableField("software_version") + private String softwareVersion; + /** + * 设计归档 + */ + @TableField("design_archive") + private String designArchive; + /** + * 批产归档 + */ + @TableField("batch_filing") + private String batchFiling; + /** + * 状态 + */ + @TableField("status") + private Integer status; + /** + * 性能指标 + */ + @TableField("kpi") + private String kpi; + /** + * 批产负责人 + */ + @TableField("principal") + private String principal; + /** + * 定额汇总表 + */ + @TableField("quota_summary") + private String quotaSummary; + + /** + * 权属部门 + */ + @TableField("deptid") + private String deptid; + + /** + * 备注 + */ + @TableField("descn") + private String descn; + + @TableField("createtime") + private Date createtime; + + + @TableField(exist = false) + private String statusFmt; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } + + public String getMachineVersion() { + return machineVersion; + } + + public void setMachineVersion(String machineVersion) { + this.machineVersion = machineVersion; + } + + public String getHardwareVersion() { + return hardwareVersion; + } + + public void setHardwareVersion(String hardwareVersion) { + this.hardwareVersion = hardwareVersion; + } + + public String getSoftwareVersion() { + return softwareVersion; + } + + public void setSoftwareVersion(String softwareVersion) { + this.softwareVersion = softwareVersion; + } + + public String getDesignArchive() { + return designArchive; + } + + public void setDesignArchive(String designArchive) { + this.designArchive = designArchive; + } + + public String getBatchFiling() { + return batchFiling; + } + + public void setBatchFiling(String batchFiling) { + this.batchFiling = batchFiling; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getKpi() { + return kpi; + } + + public void setKpi(String kpi) { + this.kpi = kpi; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public String getQuotaSummary() { + return quotaSummary; + } + + public void setQuotaSummary(String quotaSummary) { + this.quotaSummary = quotaSummary; + } + + public String getStatusFmt() { + return statusFmt; + } + + public void setStatusFmt(String statusFmt) { + this.statusFmt = statusFmt; + } + + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getProductType() { + return productType; + } + + public void setProductType(String productType) { + this.productType = productType; + } + + public String getCommunicationVersion() { + return communicationVersion; + } + + public void setCommunicationVersion(String communicationVersion) { + this.communicationVersion = communicationVersion; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductDeviceType{" + + "id=" + id + + ", productName=" + productName + + ", productModel=" + productModel + + ", machineVersion=" + machineVersion + + ", hardwareVersion=" + hardwareVersion + + ", softwareVersion=" + softwareVersion + + ", designArchive=" + designArchive + + ", batchFiling=" + batchFiling + + ", status=" + status + + ", kpi=" + kpi + + ", principal=" + principal + + ", quotaSummary=" + quotaSummary + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java new file mode 100644 index 0000000..b0fd924 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java @@ -0,0 +1,187 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_factory_information") +public class ProductFactoryInformation extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 厂家名称 + */ + @TableField("name") + private String name; + /** + * 厂家联系人 + */ + @TableField("person_name") + private String personName; + /** + * 地址 + */ + @TableField("address") + private String address; + /** + * 电话 + */ + @TableField("phone") + private String phone; + /** + * 开户行 + */ + @TableField("bank") + private String bank; + /** + * 税号 + */ + @TableField("tax_number") + private String taxNumber; + /** + * 在产设备 + */ + @TableField("producting_device") + private String productingDevice; + /** + * 设备报价表 + */ + @TableField("equipment_quotation") + private String equipmentQuotation; + + @TableField("createtime") + private Date createtime =new Date(); + + @TableField("deptid") + private String deptid; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPersonName() { + return personName; + } + + public void setPersonName(String personName) { + this.personName = personName; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getBank() { + return bank; + } + + public void setBank(String bank) { + this.bank = bank; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getProductingDevice() { + return productingDevice; + } + + public void setProductingDevice(String productingDevice) { + this.productingDevice = productingDevice; + } + + public String getEquipmentQuotation() { + return equipmentQuotation; + } + + public void setEquipmentQuotation(String equipmentQuotation) { + this.equipmentQuotation = equipmentQuotation; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductFactoryInformation{" + + "id=" + id + + ", name=" + name + + ", personName=" + personName + + ", address=" + address + + ", phone=" + phone + + ", bank=" + bank + + ", taxNumber=" + taxNumber + + ", productingDevice=" + productingDevice + + ", equipmentQuotation=" + equipmentQuotation + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java new file mode 100644 index 0000000..00cbc92 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -0,0 +1,99 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@TableName("product_project") +public class Project extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_name") + private String projectName; + @TableField("project_simple_name") + private String projectSimpleName; + @TableField("project_manager") + private String projectManager; + private String descn; + @TableField("createtime") + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getProjectManager() { + return projectManager; + } + + public void setProjectManager(String projectManager) { + this.projectManager = projectManager; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Project{" + + "id=" + id + + ", projectName=" + projectName + + ", projectSimpleName=" + projectSimpleName + + ", projectManager=" + projectManager + + ", descn=" + descn + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java new file mode 100644 index 0000000..658c2e1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java @@ -0,0 +1,126 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_reimburse") +public class Reimburse extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mi:ss") + @TableField("reimburse_time") + private Date reimburseTime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getReimburseTime() { + return reimburseTime; + } + + public void setReimburseTime(Date reimburseTime) { + this.reimburseTime = reimburseTime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Reimburse{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", reimburseTime=" + reimburseTime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java new file mode 100644 index 0000000..987efa7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java @@ -0,0 +1,141 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_task") +public class Task extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_id") + private Long projectId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("devmode_id") + private String devmodeId; + private Long devcount; + @TableField("delivery_time") + private Date deliveryTime; + private String demand; + private Date createtime; + @TableField(exist = false) + private String deliveryTimeFmt; + + @TableField(exist = false) + private Long taskId; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getProjectId() { + return projectId; + } + + public void setProjectId(Long projectId) { + this.projectId = projectId; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDevmodeId() { + return devmodeId; + } + + public void setDevmodeId(String devmodeId) { + this.devmodeId = devmodeId; + } + + public Long getDevcount() { + return devcount; + } + + public void setDevcount(Long devcount) { + this.devcount = devcount; + } + + public Date getDeliveryTime() { + return deliveryTime; + } + + public void setDeliveryTime(Date deliveryTime) { + this.deliveryTime = deliveryTime; + } + + public String getDemand() { + return demand; + } + + public void setDemand(String demand) { + this.demand = demand; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeliveryTimeFmt() { + return deliveryTimeFmt; + } + + public void setDeliveryTimeFmt(String deliveryTimeFmt) { + this.deliveryTimeFmt = deliveryTimeFmt; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Task{" + + "id=" + id + + ", projectId=" + projectId + + ", devtypeId=" + devtypeId + + ", devmodeId=" + devmodeId + + ", devcount=" + devcount + + ", deliveryTime=" + deliveryTime + + ", demand=" + demand + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java new file mode 100644 index 0000000..7785de5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface IAccountService extends IService { + + /** + * 根据用户名查用户 + * @param userName + * @return + */ + Account findUserByName(String userName); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java new file mode 100644 index 0000000..d8b5e87 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IContractService extends IService { + List selectPageList(Page page, String keyword1, String keyword2, String keyword3); + List reportExport(String keyword1, String keyword2, String keyword3); + void importContract( List contracts); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java new file mode 100644 index 0000000..0f2d6e0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IPaymentsService extends IService { + + boolean validate(Long proId,String money,String reorder); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java new file mode 100644 index 0000000..71490df --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -0,0 +1,62 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductDeviceTypeService extends IService { + + /** + * 批量导入设备类型列表 + * @param results + */ + void importDeviceType(List results); + + /** + * 导出列表 + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List reportExport(String keyword1,String keyword2,String keyword3); + + + /** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectPageDataScope(DataScope dataScope, Page page, + String keyword1, String keyword2, String keyword3); + + /** + * 获取在产的设备类型 + * @return + */ + List selectDeviceTypeList(); + + /** + * 根据产品型号获取产品 + * @param deviceModel + * @return + */ + ProductDeviceType selectDeviceTypeByModel(String deviceModel); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java new file mode 100644 index 0000000..455f60a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductFactoryInformationService extends IService { + /** + * 根据条件导出列表 + * @param keyword1 + * @param keyword2 + * @return + */ + List reportExport(String keyword1, String keyword2); + + + /** + * 导入 + * @param results + */ + void importDeviceType(List results); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java new file mode 100644 index 0000000..3c27bd1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface IProjectService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java new file mode 100644 index 0000000..ee0a55c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IReimburseService extends IService { + boolean validate(Long proId,String money,String reorder); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java new file mode 100644 index 0000000..09ce653 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.dao.AccountMapper; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.stereotype.Service; + +/** + *

+ * 管理员表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@Service +public class AccountServiceImpl extends ServiceImpl implements IAccountService { + + @Override + public Account findUserByName(String userName) { + + EntityWrapper userEntityWrapper = new EntityWrapper<>(); + userEntityWrapper.eq("name",userName); + userEntityWrapper.eq("status","1"); + return this.selectOne(userEntityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java new file mode 100644 index 0000000..dd04da0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java @@ -0,0 +1,138 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.shiro.ShiroUser; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ContractMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IPaymentsService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ContractServiceImpl extends ServiceImpl implements IContractService { + @Autowired + private IPaymentsService paymentsService; + @Autowired + private ICommonPermissionService permissionService; + @Autowired + private IAccountService userService; + @Value("${casic.producerName}") + private String producerName; + @Value("${casic.repairName}") + private String repairName; + + @Override + public List selectPageList(Page page, String keyword1, String keyword2, String keyword3) { + +// EntityWrapper query = new EntityWrapper<>(); +// if (ToolUtil.isNotEmpty(keyword1)) { +// query.like("contract_factory", keyword1); +// } +// if (ToolUtil.isNotEmpty(keyword3)) { +// query.like("contract_number", keyword3); +// } +// List contractList = this.selectPage(page, query).getRecords(); +// contractList.forEach(contract -> { +// contract.setPaymentStatus(getPaymentStatus(contract)); +// String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" +// + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" +// + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); +// contract.setNetFlow(netFlowStr); +// +// }); +// return contractList; + + + List contractList = new ArrayList<>(); + DataScope dataScope = permissionService.getCurrUserDataScope(); + ShiroUser currentUser = permissionService.getCurrLoginUser(); + if (currentUser.getRoleTips().contains(producerName) || currentUser.getRoleTips().contains(repairName)) { + contractList = this.baseMapper.findContractList(dataScope,page, currentUser.getName(), keyword1, keyword2, keyword3); + } else { + contractList = this.baseMapper.findContractList(dataScope,page, "", keyword1, keyword2, keyword3); + } + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + + }); + return contractList; + } + + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + + + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("contractFactory", keyword1); + } + if (ToolUtil.isNotEmpty(keyword3)) { + query.like("contract_number", keyword3); + } + + List contractList = this.selectList(query); + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); +// permissionService.findInDictByCode("applyStatus") + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + }); + + return contractList; + } + + @Override + public void importContract(List contracts) { + contracts.forEach(contract -> { + EntityWrapper query = new EntityWrapper<>(); + query.eq("contract_number", contract.getContractNumber()); + this.delete(query); + Account user = userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); + this.insert(contract); + }); + } + + public String getPaymentStatus(Contract contract) { + Map paraMap = new HashMap<>(); + paraMap.put("pro_id", contract.getId()); + List paymentsList = paymentsService.selectByMap(paraMap); + float sum = 0; + for (Payments payments : paymentsList) { + sum = sum + (ToolUtil.isNotEmpty(payments.getMoney()) ? Float.parseFloat(payments.getMoney()) : 0); + } + DecimalFormat df = new DecimalFormat("0"); + return sum + "," + df.format(100 * sum / Float.valueOf(contract.getContractAmount())) + "%"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java new file mode 100644 index 0000000..0c125d8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PaymentsMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class PaymentsServiceImpl extends ServiceImpl implements IPaymentsService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money,String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List paymentsList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Payments payments : paymentsList) { + if(reorder.equals(payments.getReorder())) continue; + total += ToolUtil.isNotEmpty(payments.getMoney()) ? + Long.valueOf(payments.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java new file mode 100644 index 0000000..ac6d447 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductDeviceTypeMapper; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.swing.text.html.parser.Entity; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductDeviceTypeServiceImpl extends ServiceImpl implements IProductDeviceTypeService { + + @Autowired + private ICommonPermissionService permissionService; + + @Transactional(rollbackFor = Exception.class) + @Override + public void importDeviceType(List results) { + + for (ProductDeviceType productDeviceType : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + this.baseMapper.delete(wrapper); + this.baseMapper.insert(productDeviceType); + } + } + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + wrapper.like("principal", keyword3); + } + List productDeviceTypes = this.selectList(wrapper); + for (ProductDeviceType productDeviceType : productDeviceTypes) { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + } + return productDeviceTypes; + } + + @Override + public List selectPageDataScope(DataScope dataScope, Page page, String keyword1, String keyword2, String keyword3) { + + List productDeviceTypeList = this.baseMapper.selectDataScopePage(dataScope, page, keyword1, keyword2, keyword3); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + return productDeviceTypeList; + + } + + @Override + public List selectDeviceTypeList() { + return this.baseMapper.selectDeviceTypeList(); + } + + + @Override + public ProductDeviceType selectDeviceTypeByModel(String deviceModel) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("product_model",deviceModel); + return this.selectOne(entityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java new file mode 100644 index 0000000..efe4410 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java @@ -0,0 +1,50 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductFactoryInformationMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductFactoryInformationServiceImpl extends ServiceImpl implements IProductFactoryInformationService { + + @Override + public List reportExport(String keyword1, String keyword2) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.like("producting_device", keyword2); + } + List productFactoryInformations = this.selectList(wrapper); + + return productFactoryInformations; + } + + + @Transactional(rollbackFor=Exception.class) + @Override + public void importDeviceType(List results) { + for (ProductFactoryInformation productFactoryInformation : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + delete(wrapper); + this.baseMapper.insert(productFactoryInformation); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java new file mode 100644 index 0000000..34655b0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.dao.ProjectMapper; +import com.casic.missiles.modular.system.service.IProjectService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@Service +public class ProjectServiceImpl extends ServiceImpl implements IProjectService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java new file mode 100644 index 0000000..5e8b77b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java @@ -0,0 +1,48 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.dao.ReimburseMapper; +import com.casic.missiles.modular.system.service.IReimburseService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ReimburseServiceImpl extends ServiceImpl implements IReimburseService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money, String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List reimburseList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Reimburse reimburse : reimburseList) { + if (reorder.equals(reimburse.getReorder())) continue; + total += ToolUtil.isNotEmpty(reimburse.getMoney()) ? + Long.valueOf(reimburse.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java new file mode 100644 index 0000000..d5ffadb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java @@ -0,0 +1,235 @@ +package com.casic.missiles.modular.system.util; + +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; + +import java.util.*; + +/** + * @author test203 + * @since 2020-04-06 + */ +public class DeviceUtil { + private final static String factoryCode = "20"; + private final static String wellExcludeCode = "4120"; + private final static String loraDevice = "A"; + private static Map devTypeCountHashMap = new HashMap(); + + static { + devTypeCountHashMap.put("电子标识器", 99999L); + devTypeCountHashMap.put("井盖状态监测仪", 65534L); + devTypeCountHashMap.put("灯箱控制器", 65535L); + devTypeCountHashMap.put("单灯控制器(单路)", 65535L); + devTypeCountHashMap.put("单灯控制器(双路)", 65535L); + devTypeCountHashMap.put("数据集中器", 255L); + devTypeCountHashMap.put("有害气体监测仪", 999L); + } + + public static List createDevCodes(ProductDeviceType deviceType, List batches) { + List deviceList = new ArrayList<>(); + try { + if ("电子标识器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 年份XX 批次号XX 编号XXXXX + String devCode = deviceType.getProductType() + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%05d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("井盖状态监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + String wellCode4 = String.format("%04x", i); + if (wellExcludeCode.equals(wellCode4)) { + continue; + } + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + wellCode4; + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("灯箱控制器".equals(deviceType.getProductName()) || + "单灯控制器(单路)".equals(deviceType.getProductName()) || + "单灯控制器(双路)".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("数据集中器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("有害气体监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型WS2000X- 年份XX 批次序号XXXX 编号XXX + String devCode = deviceType.getProductType() + + getYearFmt() + + String.format("%04d", batch.getBatchNumber()) + + String.format("%03d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } + //其他设备类型分lora和非lora版本 + else { + if (loraDevice.equals(deviceType.getCommunicationVersion())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } else { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return deviceList; + } + + + public static Map validate(ProductDeviceType deviceType, List batches, Task task) { + Map resultMap = new HashMap<>(); + boolean success = true; + String msg = ""; + long devSum = null != task ? task.getDevcount() : 0; + long devcount = 0, batchCountMax; + batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? + 0 : devTypeCountHashMap.get(deviceType.getProductName()); + if (0 == batchCountMax) { + if (deviceType.getProductModel().indexOf(loraDevice) + == deviceType.getProductModel().length() - 1) { + batchCountMax = 255; + } else { + batchCountMax = 9999; + } + } + for (Batch batch : batches) { + if (batch.getBatchCount() > batchCountMax) { + success = false; + msg = batch.getBatchNumber() + "批次号数量超过了最大范围" + batchCountMax; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + devcount += batch.getBatchCount(); + } + if (devcount != devSum) { + return returnMsg(); + } + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + + public static Map returnMsg() { + Map resultMap = new HashMap<>(); + resultMap.put("success", false); + resultMap.put("msg", "所有批次数量之和与任务中设备数量不一致!"); + return resultMap; + } + + /** + * 获取编码中的年份 + * + * @return + */ + public static String getYearFmt() { + + return DateUtil.format(new Date(), "yyyy").substring(2); + } + + + /** + * 比较2个map + * + * @param batchMap + * @param batchMap1 + * @return + */ + public static boolean equalMap(Map batchMap, Map batchMap1) { + if (batchMap.size() != batchMap1.size()) { + return false; + } + Iterator iter1 = batchMap.keySet().iterator(); + while (iter1.hasNext()) { + Long map1key = iter1.next(); + String map1value = batchMap.get(map1key).toString(); + String map2value = batchMap1.get(map1key).toString(); + if (!map1value.equals(map2value)) { + return false; + } + } + return true; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java new file mode 100644 index 0000000..33c3535 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java @@ -0,0 +1,43 @@ +package com.casic.missiles.modular.system.util; + +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; + +public class FileUtil { + public static File createFile(String path) throws IOException { + File file = new File(path); + if (!file.exists()) { + file.getParentFile().mkdirs(); + file.createNewFile(); + } + return file; + } + + + public static void downloadLocalFile(HttpServletResponse response,String path, String fileName) throws IOException { + File file = new File(path); + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", "attachment; filename=\"" + URLEncoder.encode(fileName, "UTF-8") + "\""); + response.setContentLength((int) file.length()); + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java new file mode 100644 index 0000000..341d3d1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.task.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.task.service.IBatchService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 批次控制器 + * + * @author dev + * @Date 2020-03-27 15:29:55 + */ +@Controller +@RequestMapping("/batch") +public class BatchController extends BaseController { + + + @Autowired + private IBatchService batchService; + + + /** + * 获取批次列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return batchService.selectList(null); + } + + /** + * 获取批次分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = batchService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增批次并生成设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + @Transactional + public Object add(@RequestBody List batches, Task task) { + + return batchService.addBatchAndDevices(batches,task); + + } + + /** + * 删除批次 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String batchId) { + batchService.deleteById(batchId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("batchIds") List batchIds) { + batchService.deleteBatchIds(batchIds); + return ResponseData.success(); + } + + /** + * 修改批次 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Batch batch) { + batchService.updateById(batch); + return ResponseData.success(); + } + + + /** + * 根据设备类型id + * 查找批次号 + */ + @RequestMapping(value = "/getBatchNumber") + @ResponseBody + public Object getBatchNumber(Long devtypeId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.orderBy("id", false); + Batch batch = batchService.selectOne(entityWrapper); + return ResponseData.success(200, "", batch != null ? batch.getBatchNumber() + 1 : 1); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java new file mode 100644 index 0000000..f463168 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java @@ -0,0 +1,102 @@ +package com.casic.missiles.modular.task.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * 任务控制器 + * + * @author dev + * @Date 2020-03-27 15:28:26 + */ +@Controller +@RequestMapping("/task") +public class TaskController extends BaseController { + + + @Autowired + private ITaskService taskService; + + + /** + * 获取任务列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return taskService.selectList(null); + } + + /** + * 获取任务分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = taskService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增任务 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + taskService.insert(task); + return ResponseData.success(); + } + + /** + * 删除任务 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String taskId) { + taskService.deleteById(taskId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("taskIds") List taskIds) { + taskService.deleteBatchIds(taskIds); + return ResponseData.success(); + } + + /** + * 修改任务 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + taskService.updateById(task); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java new file mode 100644 index 0000000..04c7ef8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.task.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IBatchService extends IService { + + /** + * 添加批次和生成设备 + * @param batches + * @param task + * @return + */ + ResponseData addBatchAndDevices(List batches, Task task); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java new file mode 100644 index 0000000..50e1d37 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.task.service; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface ITaskService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java new file mode 100644 index 0000000..a435e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dao.BatchMapper; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.DeviceUtil; +import com.casic.missiles.modular.task.service.IBatchService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class BatchServiceImpl extends ServiceImpl implements IBatchService { + + @Autowired + private IProductDeviceTypeService deviceTypeService; + @Autowired + private IDeviceService deviceService; + + @Transactional(rollbackFor=Exception.class) + @Override + public ResponseData addBatchAndDevices(List batches, Task task) { + //提交前先验证是否已经存在,若存在且批次号或每批数量改变先删除 + try { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("task_id", task.getTaskId()); + List batchList = this.selectList(entityWrapper); + Map batchMap= new HashMap<>(); + Map batchMap1= new HashMap<>(); + List batchIdlist = new ArrayList<>(); + for (Batch batch : batches) { + batchMap.put(batch.getBatchNumber(),batch.getBatchCount()); + batch.setTaskId(task.getTaskId()); + batch.setDevtypeId(task.getDevtypeId()); + batchIdlist.add(batch.getId()); + } + for (Batch batch : batchList) { + batchMap1.put(batch.getBatchNumber(),batch.getBatchCount()); + } + + //若批次号和数量不变只更新批次表 + if (DeviceUtil.equalMap(batchMap, batchMap1)) { + this.insertOrUpdateBatch(batches); + } + //若批次号和数量更新,更新设备表(删除批次相关的设备后,写入新的设备) + else { + + //验证设备数量是否合格 + ProductDeviceType deviceType = deviceTypeService.selectDeviceTypeByModel(task.getDevmodeId()); + Map resultMap = DeviceUtil.validate(deviceType, batches, task); + if (!Boolean.valueOf(resultMap.get("success").toString())) { + return ResponseData.error(400, resultMap.get("msg").toString()); + } + //删除批次 + EntityWrapper batchEntityWrapper = new EntityWrapper<>(); + batchEntityWrapper.eq("task_id", task.getTaskId()); + this.delete(batchEntityWrapper); + //删除设备 + EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); + deviceEntityWrapper.in("batch_id", batchIdlist); + deviceEntityWrapper.eq("devtype_id",task.getDevtypeId()); + deviceService.delete(deviceEntityWrapper); + + //写入批次 + this.insertBatch(batches); + //写入设备 + List deviceList = DeviceUtil.createDevCodes(deviceType, batches); + deviceService.insertBatch(deviceList); + } + } catch (Exception e) { + e.printStackTrace(); + } + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java new file mode 100644 index 0000000..fac60bb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.dao.TaskMapper; +import com.casic.missiles.modular.task.service.ITaskService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class TaskServiceImpl extends ServiceImpl implements ITaskService { + +} diff --git a/casic-web/pom.xml b/casic-web/pom.xml new file mode 100644 index 0000000..f9f1c84 --- /dev/null +++ b/casic-web/pom.xml @@ -0,0 +1,300 @@ + + + 4.0.0 + + com.casic + casic-product-device + ../pom.xml + 1.0.0-SNAPSHOT + + casic-web + ${pro.version} + jar + casic-web + casic web启动入口 + + + + dev + + true + + + dev + true + 3600 + 3600 + + + + + test + + test + false + 180 + 180 + + + + + prod + + prod + true + 3600 + 3600 + + + + + + + + + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-admin-core + ${casic.version} + + + com.casic + casic-admin-area + ${casic.version} + + + + + + + + + + com.casic + casic-device + ${pro.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-cache + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + org.springframework.boot + spring-boot-devtools + true + + + + + + org.apache.shiro + shiro-core + + + slf4j-api + org.slf4j + + + + + org.apache.shiro + shiro-spring + + + org.apache.shiro + shiro-ehcache + + + slf4j-api + org.slf4j + + + + + org.ehcache + ehcache + ${ehcache.version} + + + + commons-io + commons-io + + + com.github.penggle + kaptcha + + + com.google.zxing + core + + + com.ibeetl + beetl + + + org.apache.commons + commons-lang3 + + + com.oracle + ojdbc6 + ${oracle.version} + + + org.codehaus.groovy + groovy-all + true + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + org.apache.maven.plugins + maven-jar-plugin + + + + /config/** + **/MockController.class + + + + + + + + + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + maven-assembly-plugin + + + false + + src/main/build/package.xml + + + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-resources-plugin + 2.6 + + + ${resource.delimiter} + + true + + + + copy-resources + validate + + copy-resources + + + ${project.build.outputDirectory} + + + + src/main/resources + true + + + + + + + + + + src/main/webapp + + + src/main/resources + + + src/main/java + + **/*.xml + + true + + + + + diff --git "a/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" "b/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" new file mode 100644 index 0000000..9656df2 --- /dev/null +++ "b/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" @@ -0,0 +1,4 @@ +@echo off +title 智慧城管 +java -jar guns-web-1.0.0-SNAPSHOT.jar +@pause diff --git a/casic-web/src/main/build/package.xml b/casic-web/src/main/build/package.xml new file mode 100644 index 0000000..68b7576 --- /dev/null +++ b/casic-web/src/main/build/package.xml @@ -0,0 +1,26 @@ + + + package + + zip + + true + + + src/main/bin + / + + + src/main/resources/config + / + + + ${project.build.directory} + / + + *.jar + + + + + \ No newline at end of file diff --git a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java new file mode 100644 index 0000000..0b0c3fb --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java @@ -0,0 +1,35 @@ +package com.casic.missiles; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * SpringBoot方式启动类 + * + * @author casic + * @Date 2017/5/21 12:06 + */ +@SpringBootApplication +@ServletComponentScan +@EnableTransactionManagement(proxyTargetClass = true) +public class CasicApplication { + + private static final Logger logger = LoggerFactory.getLogger(CasicApplication.class); + + public static void main(String[] args){ + SpringApplication.run(CasicApplication.class, args); + logger.info("GunsApplication is success!"); + + } + +} + + + + + + diff --git a/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java new file mode 100644 index 0000000..269025c --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java @@ -0,0 +1,18 @@ +package com.casic.missiles; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.support.SpringBootServletInitializer; + +/** + * Guns Web程序启动类 + * + * @author fengshuonan + * @date 2017-05-21 9:43 + */ +public class CasicServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(CasicApplication.class); + } +} diff --git a/casic-web/src/main/java/com/casic/missiles/controller/MockController.java b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java new file mode 100644 index 0000000..a8285e8 --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java @@ -0,0 +1,83 @@ +package com.casic.missiles.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.log.LogManager; +import com.casic.missiles.core.log.factory.LogTaskFactory; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.core.shiro.ShiroUser; +import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.contant.PermissionContant; +import com.casic.missiles.modular.system.dto.LoginResult; +import org.apache.commons.lang3.StringUtils; +import org.apache.shiro.authc.UsernamePasswordToken; +import org.apache.shiro.subject.Subject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.servlet.http.HttpServletRequest; +import java.security.NoSuchAlgorithmException; +import java.util.Map; + +import static com.casic.missiles.core.support.HttpKit.getIp; + +/** + * 仅为mock登录使用 + */ +@Controller +@RequestMapping("/route") +public class MockController extends BaseController { + private static final Logger logger = LoggerFactory.getLogger(MockController.class); + + /** + * 获取mockToken + */ + @GetMapping("/mockToken") + @ResponseBody + public Object subdepts(HttpServletRequest request, String username, String password) { + ShiroKit.getSession().setAttribute(PermissionContant.IS_APP, false); + SuccessResponseData resultData = new SuccessResponseData(); + if (ToolUtil.isOneEmpty(username, password)) { + username = "admin"; + password = "1111111a"; + } + Subject currentUser = ShiroKit.getSubject(); + + try { + Map key = RSAUtils.genKeyPair(); + ShiroKit.getSession().setAttribute(PermissionContant.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey)); + logger.info("秘钥:".concat(key.get(RSAUtils.RSAPublicKey))); + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + + + UsernamePasswordToken token = new UsernamePasswordToken(username, password.toCharArray()); + token.setRememberMe(false); + try { + currentUser.login(token); + } catch (Exception e) { + e.printStackTrace(); + } + ShiroUser shiroUser = ShiroKit.getUser(); + super.getSession().setAttribute("shiroUser", shiroUser); + super.getSession().setAttribute("username", shiroUser.getAccount()); + + super.getSession().setAttribute(PermissionContant.SESSION_KEY, shiroUser.getId()); + + LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp())); + + ShiroKit.getSession().setAttribute("sessionFlag", true); + resultData.setData(new LoginResult(ShiroKit.getSession().getId().toString(), null)); + resultData.setMessage("登录成功"); + return resultData; + } + +} diff --git a/casic-web/src/main/resources/application.yml b/casic-web/src/main/resources/application.yml new file mode 100644 index 0000000..70cc33b --- /dev/null +++ b/casic-web/src/main/resources/application.yml @@ -0,0 +1,18 @@ +########################################################## +################## 所有profile共有的配置 ################# +########################################################## +spring: + profiles: + active: @activatedProperties@ + datasource: + driver-class-name: com.mysql.jdbc.Driver + jms: + pub-sub-domain: true + aop: + proxy-target-class: true #false为启用jdk默认动态代理,true为cglib动态代理 +################### mybatis-plus配置 ################### +################### guns配置 ################### +casic: + kaptcha-open: true #是否开启登录时验证码 (true/false) + file-upload-path: d:/tmp #文件上传目录(不配置的话为java.io.tmpdir目录) + nologin-urls: /user/login,/kaptcha,/config/baseConfig \ No newline at end of file diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml new file mode 100644 index 0000000..99216e3 --- /dev/null +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -0,0 +1,24 @@ +server: + port: 8083 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://139.198.17.115:3000/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: root + initial-size: 2 + min-idle: 1 +#flowable数据源和多数据源配置 +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /user/login,/user/appLogin,/kaptcha,/config/baseConfig,/route/mockToken,/process/processDiagram,/enterprise2/list,/enterprise2/report,/enterprise3/list,enterprise3/report + file-upload-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\upload\ + file-download-path: D:\tmp\ + producerName: producer + repairName: repair +logging: + level.root: info + level.com.casic: debug + path: logs/ + file: missiles.log + diff --git a/casic-web/src/main/resources/config/application-prod.yml b/casic-web/src/main/resources/config/application-prod.yml new file mode 100644 index 0000000..d54ce16 --- /dev/null +++ b/casic-web/src/main/resources/config/application-prod.yml @@ -0,0 +1,20 @@ +server: + port: 8093 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://139.198.17.115:3000/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: root + initial-size: 2 + min-idle: 1 +#flowable数据源和多数据源配置 +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /user/login,/user/appLogin,/kaptcha,/config/baseConfig,/route/mockToken,/process/processDiagram + file-upload-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\upload +logging: + level.root: info + level.com.casic: debug + path: logs/ + file: missiles.log \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java new file mode 100644 index 0000000..4670df3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 集中器相关日志 + */ +public class ProjectDict extends AbstractDictMap { + public static final String PROJECT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + @Override + public void init() { + put("projectName","项目名称"); + put("projectSimpleName","项目简称"); + put("projectManager","项目经理"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java new file mode 100644 index 0000000..7981a17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dto; + +/** + * 用于设备类型展示 + * @author test203 + * @date 2020-04-03 + */ +public class DeviceTypeDto { + private Long id; + private String productName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java new file mode 100644 index 0000000..f254585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java @@ -0,0 +1,361 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.math.BigDecimal; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; + +/** + *

+ * 管理员表 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@TableName("sys_user") +public class Account extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + /** + * 头像 + */ + private String avatar; + /** + * 账号 + */ + private String account; + /** + * 密码 + */ + private String password; + /** + * md5密码盐 + */ + private String salt; + /** + * 名字 + */ + private String name; + /** + * 生日 + */ + private Date birthday; + /** + * 性别(1:男 2:女) + */ + private String sex; + /** + * 电子邮件 + */ + private String email; + /** + * 电话 + */ + private String phone; + /** + * 角色id + */ + private String roleid; + /** + * 部门id + */ + private Long deptid; + /** + * 状态(1:启用 2:冻结 3:删除) + */ + private String status; + /** + * 创建时间 + */ + private Date createtime; + /** + * 保留字段 + */ + private Integer version; + private String targetid; + private String targetname; + @TableField("password_sync") + private String passwordSync; + @TableField("IS_SYNC") + private Integer isSync; + private String simplename; + /** + * 同步组织ID + */ + @TableField("TARGET_DEPTID_SYNC") + private String targetDeptidSync; + @TableField("LOGIN_IP") + private String loginIp; + @TableField("LOGIN_MAC") + private String loginMac; + /** + * 最后在线时间 + */ + @TableField("LAST_TIME") + private Date lastTime; + /** + * 经度 + */ + @TableField("POSITION_LNG") + private BigDecimal positionLng; + /** + * 纬度 + */ + @TableField("POSITION_LAT") + private BigDecimal positionLat; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt() { + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getRoleid() { + return roleid; + } + + public void setRoleid(String roleid) { + this.roleid = roleid; + } + + public Long getDeptid() { + return deptid; + } + + public void setDeptid(Long deptid) { + this.deptid = deptid; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + public String getTargetid() { + return targetid; + } + + public void setTargetid(String targetid) { + this.targetid = targetid; + } + + public String getTargetname() { + return targetname; + } + + public void setTargetname(String targetname) { + this.targetname = targetname; + } + + public String getPasswordSync() { + return passwordSync; + } + + public void setPasswordSync(String passwordSync) { + this.passwordSync = passwordSync; + } + + public Integer getIsSync() { + return isSync; + } + + public void setIsSync(Integer isSync) { + this.isSync = isSync; + } + + public String getSimplename() { + return simplename; + } + + public void setSimplename(String simplename) { + this.simplename = simplename; + } + + public String getTargetDeptidSync() { + return targetDeptidSync; + } + + public void setTargetDeptidSync(String targetDeptidSync) { + this.targetDeptidSync = targetDeptidSync; + } + + public String getLoginIp() { + return loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getLoginMac() { + return loginMac; + } + + public void setLoginMac(String loginMac) { + this.loginMac = loginMac; + } + + public Date getLastTime() { + return lastTime; + } + + public void setLastTime(Date lastTime) { + this.lastTime = lastTime; + } + + public BigDecimal getPositionLng() { + return positionLng; + } + + public void setPositionLng(BigDecimal positionLng) { + this.positionLng = positionLng; + } + + public BigDecimal getPositionLat() { + return positionLat; + } + + public void setPositionLat(BigDecimal positionLat) { + this.positionLat = positionLat; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", avatar=" + avatar + + ", account=" + account + + ", password=" + password + + ", salt=" + salt + + ", name=" + name + + ", birthday=" + birthday + + ", sex=" + sex + + ", email=" + email + + ", phone=" + phone + + ", roleid=" + roleid + + ", deptid=" + deptid + + ", status=" + status + + ", createtime=" + createtime + + ", version=" + version + + ", targetid=" + targetid + + ", targetname=" + targetname + + ", passwordSync=" + passwordSync + + ", isSync=" + isSync + + ", simplename=" + simplename + + ", targetDeptidSync=" + targetDeptidSync + + ", loginIp=" + loginIp + + ", loginMac=" + loginMac + + ", lastTime=" + lastTime + + ", positionLng=" + positionLng + + ", positionLat=" + positionLat + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java new file mode 100644 index 0000000..81516b7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -0,0 +1,110 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_batch") +public class Batch extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_number") + private Long batchNumber; + @TableField("batch_count") + private Long batchCount; + @TableField("contract_id") + private Long contractId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("task_id") + private Long taskId; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(Long batchNumber) { + this.batchNumber = batchNumber; + } + + public Long getBatchCount() { + return batchCount; + } + + public void setBatchCount(Long batchCount) { + this.batchCount = batchCount; + } + + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Batch{" + + "id=" + id + + ", batchNumber=" + batchNumber + + ", batchCount=" + batchCount + + ", contractId=" + contractId + + ", taskId=" + taskId + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java new file mode 100644 index 0000000..893a1ed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -0,0 +1,186 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_contract") +public class Contract extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("contract_number") + private String contractNumber; + @TableField("contract_name") + private String contractName; + @TableField("contract_content") + private String contractContent; + @TableField("contract_amount") + private String contractAmount; + @TableField("external_project_apply") + private String externalProjectApply; + @TableField("external_contract_apply") + private String externalContractApply; + @TableField("principal") + private String principal; + @TableField("external_check_apply") + private String externalCheckApply; + @TableField("contract_factory") + private String contractFactory; + @TableField("createtime") + private Date createtime; + @TableField(exist = false) + private String paymentStatus; + @TableField(exist = false) + private String netFlow; + @TableField("deptid") + private String deptid; + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getContractName() { + return contractName; + } + + public void setContractName(String contractName) { + this.contractName = contractName; + } + + public String getContractContent() { + return contractContent; + } + + public void setContractContent(String contractContent) { + this.contractContent = contractContent; + } + + public String getContractAmount() { + return contractAmount; + } + + public void setContractAmount(String contractAmount) { + this.contractAmount = contractAmount; + } + + public String getExternalProjectApply() { + return externalProjectApply; + } + + public void setExternalProjectApply(String externalProjectApply) { + this.externalProjectApply = externalProjectApply; + } + + public String getExternalContractApply() { + return externalContractApply; + } + + public void setExternalContractApply(String externalContractApply) { + this.externalContractApply = externalContractApply; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalCheckApply() { + return externalCheckApply; + } + + public void setExternalCheckApply(String externalCheckApply) { + this.externalCheckApply = externalCheckApply; + } + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public String getContractFactory() { + return contractFactory; + } + + public void setContractFactory(String contractFactory) { + this.contractFactory = contractFactory; + } + + public String getNetFlow() { + return netFlow; + } + + public void setNetFlow(String netFlow) { + this.netFlow = netFlow; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Contract{" + + "contractNumber=" + contractNumber + + ", contractName=" + contractName + + ", contractContent=" + contractContent + + ", contractAmount=" + contractAmount + + ", externalProjectApply=" + externalProjectApply + + ", externalContractApply=" + externalContractApply + + ", principal=" + principal + + ", id=" + id + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java new file mode 100644 index 0000000..8718d91 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -0,0 +1,150 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_device") +public class Device extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_id") + private Long batchId; + private String devcode; + @TableField("devtype_id") + private Long devtypeId; + @TableField("is_send") + private String isSend; + private String longitude; + private String latitude; + @TableField("install_height") + private String installHeight; + private String iccid; + private Long imei; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public Long getImei() { + return imei; + } + + public void setImei(Long imei) { + this.imei = imei; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Device{" + + "id=" + id + + ", batchId=" + batchId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", isSend=" + isSend + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", installHeight=" + installHeight + + ", iccid=" + iccid + + ", imei=" + imei + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java new file mode 100644 index 0000000..870c36f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_payments") +public class Payments extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @TableField("paytime") + private Date paytime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getPaytime() { + return paytime; + } + + public void setPaytime(Date paytime) { + this.paytime = paytime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Payments{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", paytime=" + paytime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java new file mode 100644 index 0000000..ae6b585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -0,0 +1,285 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_device_type") +public class ProductDeviceType extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 产品名称 + */ + @TableField("product_name") + private String productName; + /** + * 产品型号 + */ + @TableField("product_model") + private String productModel; + + /** + * 通讯版本号 + */ + @TableField("communication_version") + private String communicationVersion; + + /** + * 产品类型 + */ + @TableField("product_type") + private String productType; + + /** + * 整机版本号 + */ + @TableField("machine_version") + private String machineVersion; + /** + * 硬件版本号 + */ + @TableField("hardware_version") + private String hardwareVersion; + /** + * 软件版本号 + */ + @TableField("software_version") + private String softwareVersion; + /** + * 设计归档 + */ + @TableField("design_archive") + private String designArchive; + /** + * 批产归档 + */ + @TableField("batch_filing") + private String batchFiling; + /** + * 状态 + */ + @TableField("status") + private Integer status; + /** + * 性能指标 + */ + @TableField("kpi") + private String kpi; + /** + * 批产负责人 + */ + @TableField("principal") + private String principal; + /** + * 定额汇总表 + */ + @TableField("quota_summary") + private String quotaSummary; + + /** + * 权属部门 + */ + @TableField("deptid") + private String deptid; + + /** + * 备注 + */ + @TableField("descn") + private String descn; + + @TableField("createtime") + private Date createtime; + + + @TableField(exist = false) + private String statusFmt; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } + + public String getMachineVersion() { + return machineVersion; + } + + public void setMachineVersion(String machineVersion) { + this.machineVersion = machineVersion; + } + + public String getHardwareVersion() { + return hardwareVersion; + } + + public void setHardwareVersion(String hardwareVersion) { + this.hardwareVersion = hardwareVersion; + } + + public String getSoftwareVersion() { + return softwareVersion; + } + + public void setSoftwareVersion(String softwareVersion) { + this.softwareVersion = softwareVersion; + } + + public String getDesignArchive() { + return designArchive; + } + + public void setDesignArchive(String designArchive) { + this.designArchive = designArchive; + } + + public String getBatchFiling() { + return batchFiling; + } + + public void setBatchFiling(String batchFiling) { + this.batchFiling = batchFiling; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getKpi() { + return kpi; + } + + public void setKpi(String kpi) { + this.kpi = kpi; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public String getQuotaSummary() { + return quotaSummary; + } + + public void setQuotaSummary(String quotaSummary) { + this.quotaSummary = quotaSummary; + } + + public String getStatusFmt() { + return statusFmt; + } + + public void setStatusFmt(String statusFmt) { + this.statusFmt = statusFmt; + } + + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getProductType() { + return productType; + } + + public void setProductType(String productType) { + this.productType = productType; + } + + public String getCommunicationVersion() { + return communicationVersion; + } + + public void setCommunicationVersion(String communicationVersion) { + this.communicationVersion = communicationVersion; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductDeviceType{" + + "id=" + id + + ", productName=" + productName + + ", productModel=" + productModel + + ", machineVersion=" + machineVersion + + ", hardwareVersion=" + hardwareVersion + + ", softwareVersion=" + softwareVersion + + ", designArchive=" + designArchive + + ", batchFiling=" + batchFiling + + ", status=" + status + + ", kpi=" + kpi + + ", principal=" + principal + + ", quotaSummary=" + quotaSummary + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java new file mode 100644 index 0000000..b0fd924 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java @@ -0,0 +1,187 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_factory_information") +public class ProductFactoryInformation extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 厂家名称 + */ + @TableField("name") + private String name; + /** + * 厂家联系人 + */ + @TableField("person_name") + private String personName; + /** + * 地址 + */ + @TableField("address") + private String address; + /** + * 电话 + */ + @TableField("phone") + private String phone; + /** + * 开户行 + */ + @TableField("bank") + private String bank; + /** + * 税号 + */ + @TableField("tax_number") + private String taxNumber; + /** + * 在产设备 + */ + @TableField("producting_device") + private String productingDevice; + /** + * 设备报价表 + */ + @TableField("equipment_quotation") + private String equipmentQuotation; + + @TableField("createtime") + private Date createtime =new Date(); + + @TableField("deptid") + private String deptid; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPersonName() { + return personName; + } + + public void setPersonName(String personName) { + this.personName = personName; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getBank() { + return bank; + } + + public void setBank(String bank) { + this.bank = bank; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getProductingDevice() { + return productingDevice; + } + + public void setProductingDevice(String productingDevice) { + this.productingDevice = productingDevice; + } + + public String getEquipmentQuotation() { + return equipmentQuotation; + } + + public void setEquipmentQuotation(String equipmentQuotation) { + this.equipmentQuotation = equipmentQuotation; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductFactoryInformation{" + + "id=" + id + + ", name=" + name + + ", personName=" + personName + + ", address=" + address + + ", phone=" + phone + + ", bank=" + bank + + ", taxNumber=" + taxNumber + + ", productingDevice=" + productingDevice + + ", equipmentQuotation=" + equipmentQuotation + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java new file mode 100644 index 0000000..00cbc92 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -0,0 +1,99 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@TableName("product_project") +public class Project extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_name") + private String projectName; + @TableField("project_simple_name") + private String projectSimpleName; + @TableField("project_manager") + private String projectManager; + private String descn; + @TableField("createtime") + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getProjectManager() { + return projectManager; + } + + public void setProjectManager(String projectManager) { + this.projectManager = projectManager; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Project{" + + "id=" + id + + ", projectName=" + projectName + + ", projectSimpleName=" + projectSimpleName + + ", projectManager=" + projectManager + + ", descn=" + descn + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java new file mode 100644 index 0000000..658c2e1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java @@ -0,0 +1,126 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_reimburse") +public class Reimburse extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mi:ss") + @TableField("reimburse_time") + private Date reimburseTime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getReimburseTime() { + return reimburseTime; + } + + public void setReimburseTime(Date reimburseTime) { + this.reimburseTime = reimburseTime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Reimburse{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", reimburseTime=" + reimburseTime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java new file mode 100644 index 0000000..987efa7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java @@ -0,0 +1,141 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_task") +public class Task extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_id") + private Long projectId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("devmode_id") + private String devmodeId; + private Long devcount; + @TableField("delivery_time") + private Date deliveryTime; + private String demand; + private Date createtime; + @TableField(exist = false) + private String deliveryTimeFmt; + + @TableField(exist = false) + private Long taskId; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getProjectId() { + return projectId; + } + + public void setProjectId(Long projectId) { + this.projectId = projectId; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDevmodeId() { + return devmodeId; + } + + public void setDevmodeId(String devmodeId) { + this.devmodeId = devmodeId; + } + + public Long getDevcount() { + return devcount; + } + + public void setDevcount(Long devcount) { + this.devcount = devcount; + } + + public Date getDeliveryTime() { + return deliveryTime; + } + + public void setDeliveryTime(Date deliveryTime) { + this.deliveryTime = deliveryTime; + } + + public String getDemand() { + return demand; + } + + public void setDemand(String demand) { + this.demand = demand; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeliveryTimeFmt() { + return deliveryTimeFmt; + } + + public void setDeliveryTimeFmt(String deliveryTimeFmt) { + this.deliveryTimeFmt = deliveryTimeFmt; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Task{" + + "id=" + id + + ", projectId=" + projectId + + ", devtypeId=" + devtypeId + + ", devmodeId=" + devmodeId + + ", devcount=" + devcount + + ", deliveryTime=" + deliveryTime + + ", demand=" + demand + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java new file mode 100644 index 0000000..7785de5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface IAccountService extends IService { + + /** + * 根据用户名查用户 + * @param userName + * @return + */ + Account findUserByName(String userName); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java new file mode 100644 index 0000000..d8b5e87 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IContractService extends IService { + List selectPageList(Page page, String keyword1, String keyword2, String keyword3); + List reportExport(String keyword1, String keyword2, String keyword3); + void importContract( List contracts); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java new file mode 100644 index 0000000..0f2d6e0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IPaymentsService extends IService { + + boolean validate(Long proId,String money,String reorder); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java new file mode 100644 index 0000000..71490df --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -0,0 +1,62 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductDeviceTypeService extends IService { + + /** + * 批量导入设备类型列表 + * @param results + */ + void importDeviceType(List results); + + /** + * 导出列表 + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List reportExport(String keyword1,String keyword2,String keyword3); + + + /** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectPageDataScope(DataScope dataScope, Page page, + String keyword1, String keyword2, String keyword3); + + /** + * 获取在产的设备类型 + * @return + */ + List selectDeviceTypeList(); + + /** + * 根据产品型号获取产品 + * @param deviceModel + * @return + */ + ProductDeviceType selectDeviceTypeByModel(String deviceModel); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java new file mode 100644 index 0000000..455f60a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductFactoryInformationService extends IService { + /** + * 根据条件导出列表 + * @param keyword1 + * @param keyword2 + * @return + */ + List reportExport(String keyword1, String keyword2); + + + /** + * 导入 + * @param results + */ + void importDeviceType(List results); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java new file mode 100644 index 0000000..3c27bd1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface IProjectService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java new file mode 100644 index 0000000..ee0a55c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IReimburseService extends IService { + boolean validate(Long proId,String money,String reorder); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java new file mode 100644 index 0000000..09ce653 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.dao.AccountMapper; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.stereotype.Service; + +/** + *

+ * 管理员表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@Service +public class AccountServiceImpl extends ServiceImpl implements IAccountService { + + @Override + public Account findUserByName(String userName) { + + EntityWrapper userEntityWrapper = new EntityWrapper<>(); + userEntityWrapper.eq("name",userName); + userEntityWrapper.eq("status","1"); + return this.selectOne(userEntityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java new file mode 100644 index 0000000..dd04da0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java @@ -0,0 +1,138 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.shiro.ShiroUser; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ContractMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IPaymentsService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ContractServiceImpl extends ServiceImpl implements IContractService { + @Autowired + private IPaymentsService paymentsService; + @Autowired + private ICommonPermissionService permissionService; + @Autowired + private IAccountService userService; + @Value("${casic.producerName}") + private String producerName; + @Value("${casic.repairName}") + private String repairName; + + @Override + public List selectPageList(Page page, String keyword1, String keyword2, String keyword3) { + +// EntityWrapper query = new EntityWrapper<>(); +// if (ToolUtil.isNotEmpty(keyword1)) { +// query.like("contract_factory", keyword1); +// } +// if (ToolUtil.isNotEmpty(keyword3)) { +// query.like("contract_number", keyword3); +// } +// List contractList = this.selectPage(page, query).getRecords(); +// contractList.forEach(contract -> { +// contract.setPaymentStatus(getPaymentStatus(contract)); +// String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" +// + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" +// + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); +// contract.setNetFlow(netFlowStr); +// +// }); +// return contractList; + + + List contractList = new ArrayList<>(); + DataScope dataScope = permissionService.getCurrUserDataScope(); + ShiroUser currentUser = permissionService.getCurrLoginUser(); + if (currentUser.getRoleTips().contains(producerName) || currentUser.getRoleTips().contains(repairName)) { + contractList = this.baseMapper.findContractList(dataScope,page, currentUser.getName(), keyword1, keyword2, keyword3); + } else { + contractList = this.baseMapper.findContractList(dataScope,page, "", keyword1, keyword2, keyword3); + } + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + + }); + return contractList; + } + + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + + + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("contractFactory", keyword1); + } + if (ToolUtil.isNotEmpty(keyword3)) { + query.like("contract_number", keyword3); + } + + List contractList = this.selectList(query); + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); +// permissionService.findInDictByCode("applyStatus") + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + }); + + return contractList; + } + + @Override + public void importContract(List contracts) { + contracts.forEach(contract -> { + EntityWrapper query = new EntityWrapper<>(); + query.eq("contract_number", contract.getContractNumber()); + this.delete(query); + Account user = userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); + this.insert(contract); + }); + } + + public String getPaymentStatus(Contract contract) { + Map paraMap = new HashMap<>(); + paraMap.put("pro_id", contract.getId()); + List paymentsList = paymentsService.selectByMap(paraMap); + float sum = 0; + for (Payments payments : paymentsList) { + sum = sum + (ToolUtil.isNotEmpty(payments.getMoney()) ? Float.parseFloat(payments.getMoney()) : 0); + } + DecimalFormat df = new DecimalFormat("0"); + return sum + "," + df.format(100 * sum / Float.valueOf(contract.getContractAmount())) + "%"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java new file mode 100644 index 0000000..0c125d8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PaymentsMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class PaymentsServiceImpl extends ServiceImpl implements IPaymentsService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money,String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List paymentsList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Payments payments : paymentsList) { + if(reorder.equals(payments.getReorder())) continue; + total += ToolUtil.isNotEmpty(payments.getMoney()) ? + Long.valueOf(payments.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java new file mode 100644 index 0000000..ac6d447 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductDeviceTypeMapper; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.swing.text.html.parser.Entity; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductDeviceTypeServiceImpl extends ServiceImpl implements IProductDeviceTypeService { + + @Autowired + private ICommonPermissionService permissionService; + + @Transactional(rollbackFor = Exception.class) + @Override + public void importDeviceType(List results) { + + for (ProductDeviceType productDeviceType : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + this.baseMapper.delete(wrapper); + this.baseMapper.insert(productDeviceType); + } + } + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + wrapper.like("principal", keyword3); + } + List productDeviceTypes = this.selectList(wrapper); + for (ProductDeviceType productDeviceType : productDeviceTypes) { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + } + return productDeviceTypes; + } + + @Override + public List selectPageDataScope(DataScope dataScope, Page page, String keyword1, String keyword2, String keyword3) { + + List productDeviceTypeList = this.baseMapper.selectDataScopePage(dataScope, page, keyword1, keyword2, keyword3); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + return productDeviceTypeList; + + } + + @Override + public List selectDeviceTypeList() { + return this.baseMapper.selectDeviceTypeList(); + } + + + @Override + public ProductDeviceType selectDeviceTypeByModel(String deviceModel) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("product_model",deviceModel); + return this.selectOne(entityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java new file mode 100644 index 0000000..efe4410 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java @@ -0,0 +1,50 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductFactoryInformationMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductFactoryInformationServiceImpl extends ServiceImpl implements IProductFactoryInformationService { + + @Override + public List reportExport(String keyword1, String keyword2) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.like("producting_device", keyword2); + } + List productFactoryInformations = this.selectList(wrapper); + + return productFactoryInformations; + } + + + @Transactional(rollbackFor=Exception.class) + @Override + public void importDeviceType(List results) { + for (ProductFactoryInformation productFactoryInformation : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + delete(wrapper); + this.baseMapper.insert(productFactoryInformation); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java new file mode 100644 index 0000000..34655b0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.dao.ProjectMapper; +import com.casic.missiles.modular.system.service.IProjectService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@Service +public class ProjectServiceImpl extends ServiceImpl implements IProjectService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java new file mode 100644 index 0000000..5e8b77b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java @@ -0,0 +1,48 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.dao.ReimburseMapper; +import com.casic.missiles.modular.system.service.IReimburseService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ReimburseServiceImpl extends ServiceImpl implements IReimburseService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money, String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List reimburseList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Reimburse reimburse : reimburseList) { + if (reorder.equals(reimburse.getReorder())) continue; + total += ToolUtil.isNotEmpty(reimburse.getMoney()) ? + Long.valueOf(reimburse.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java new file mode 100644 index 0000000..d5ffadb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java @@ -0,0 +1,235 @@ +package com.casic.missiles.modular.system.util; + +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; + +import java.util.*; + +/** + * @author test203 + * @since 2020-04-06 + */ +public class DeviceUtil { + private final static String factoryCode = "20"; + private final static String wellExcludeCode = "4120"; + private final static String loraDevice = "A"; + private static Map devTypeCountHashMap = new HashMap(); + + static { + devTypeCountHashMap.put("电子标识器", 99999L); + devTypeCountHashMap.put("井盖状态监测仪", 65534L); + devTypeCountHashMap.put("灯箱控制器", 65535L); + devTypeCountHashMap.put("单灯控制器(单路)", 65535L); + devTypeCountHashMap.put("单灯控制器(双路)", 65535L); + devTypeCountHashMap.put("数据集中器", 255L); + devTypeCountHashMap.put("有害气体监测仪", 999L); + } + + public static List createDevCodes(ProductDeviceType deviceType, List batches) { + List deviceList = new ArrayList<>(); + try { + if ("电子标识器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 年份XX 批次号XX 编号XXXXX + String devCode = deviceType.getProductType() + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%05d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("井盖状态监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + String wellCode4 = String.format("%04x", i); + if (wellExcludeCode.equals(wellCode4)) { + continue; + } + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + wellCode4; + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("灯箱控制器".equals(deviceType.getProductName()) || + "单灯控制器(单路)".equals(deviceType.getProductName()) || + "单灯控制器(双路)".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("数据集中器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("有害气体监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型WS2000X- 年份XX 批次序号XXXX 编号XXX + String devCode = deviceType.getProductType() + + getYearFmt() + + String.format("%04d", batch.getBatchNumber()) + + String.format("%03d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } + //其他设备类型分lora和非lora版本 + else { + if (loraDevice.equals(deviceType.getCommunicationVersion())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } else { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return deviceList; + } + + + public static Map validate(ProductDeviceType deviceType, List batches, Task task) { + Map resultMap = new HashMap<>(); + boolean success = true; + String msg = ""; + long devSum = null != task ? task.getDevcount() : 0; + long devcount = 0, batchCountMax; + batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? + 0 : devTypeCountHashMap.get(deviceType.getProductName()); + if (0 == batchCountMax) { + if (deviceType.getProductModel().indexOf(loraDevice) + == deviceType.getProductModel().length() - 1) { + batchCountMax = 255; + } else { + batchCountMax = 9999; + } + } + for (Batch batch : batches) { + if (batch.getBatchCount() > batchCountMax) { + success = false; + msg = batch.getBatchNumber() + "批次号数量超过了最大范围" + batchCountMax; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + devcount += batch.getBatchCount(); + } + if (devcount != devSum) { + return returnMsg(); + } + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + + public static Map returnMsg() { + Map resultMap = new HashMap<>(); + resultMap.put("success", false); + resultMap.put("msg", "所有批次数量之和与任务中设备数量不一致!"); + return resultMap; + } + + /** + * 获取编码中的年份 + * + * @return + */ + public static String getYearFmt() { + + return DateUtil.format(new Date(), "yyyy").substring(2); + } + + + /** + * 比较2个map + * + * @param batchMap + * @param batchMap1 + * @return + */ + public static boolean equalMap(Map batchMap, Map batchMap1) { + if (batchMap.size() != batchMap1.size()) { + return false; + } + Iterator iter1 = batchMap.keySet().iterator(); + while (iter1.hasNext()) { + Long map1key = iter1.next(); + String map1value = batchMap.get(map1key).toString(); + String map2value = batchMap1.get(map1key).toString(); + if (!map1value.equals(map2value)) { + return false; + } + } + return true; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java new file mode 100644 index 0000000..33c3535 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java @@ -0,0 +1,43 @@ +package com.casic.missiles.modular.system.util; + +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; + +public class FileUtil { + public static File createFile(String path) throws IOException { + File file = new File(path); + if (!file.exists()) { + file.getParentFile().mkdirs(); + file.createNewFile(); + } + return file; + } + + + public static void downloadLocalFile(HttpServletResponse response,String path, String fileName) throws IOException { + File file = new File(path); + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", "attachment; filename=\"" + URLEncoder.encode(fileName, "UTF-8") + "\""); + response.setContentLength((int) file.length()); + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java new file mode 100644 index 0000000..341d3d1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.task.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.task.service.IBatchService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 批次控制器 + * + * @author dev + * @Date 2020-03-27 15:29:55 + */ +@Controller +@RequestMapping("/batch") +public class BatchController extends BaseController { + + + @Autowired + private IBatchService batchService; + + + /** + * 获取批次列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return batchService.selectList(null); + } + + /** + * 获取批次分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = batchService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增批次并生成设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + @Transactional + public Object add(@RequestBody List batches, Task task) { + + return batchService.addBatchAndDevices(batches,task); + + } + + /** + * 删除批次 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String batchId) { + batchService.deleteById(batchId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("batchIds") List batchIds) { + batchService.deleteBatchIds(batchIds); + return ResponseData.success(); + } + + /** + * 修改批次 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Batch batch) { + batchService.updateById(batch); + return ResponseData.success(); + } + + + /** + * 根据设备类型id + * 查找批次号 + */ + @RequestMapping(value = "/getBatchNumber") + @ResponseBody + public Object getBatchNumber(Long devtypeId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.orderBy("id", false); + Batch batch = batchService.selectOne(entityWrapper); + return ResponseData.success(200, "", batch != null ? batch.getBatchNumber() + 1 : 1); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java new file mode 100644 index 0000000..f463168 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java @@ -0,0 +1,102 @@ +package com.casic.missiles.modular.task.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * 任务控制器 + * + * @author dev + * @Date 2020-03-27 15:28:26 + */ +@Controller +@RequestMapping("/task") +public class TaskController extends BaseController { + + + @Autowired + private ITaskService taskService; + + + /** + * 获取任务列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return taskService.selectList(null); + } + + /** + * 获取任务分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = taskService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增任务 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + taskService.insert(task); + return ResponseData.success(); + } + + /** + * 删除任务 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String taskId) { + taskService.deleteById(taskId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("taskIds") List taskIds) { + taskService.deleteBatchIds(taskIds); + return ResponseData.success(); + } + + /** + * 修改任务 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + taskService.updateById(task); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java new file mode 100644 index 0000000..04c7ef8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.task.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IBatchService extends IService { + + /** + * 添加批次和生成设备 + * @param batches + * @param task + * @return + */ + ResponseData addBatchAndDevices(List batches, Task task); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java new file mode 100644 index 0000000..50e1d37 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.task.service; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface ITaskService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java new file mode 100644 index 0000000..a435e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dao.BatchMapper; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.DeviceUtil; +import com.casic.missiles.modular.task.service.IBatchService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class BatchServiceImpl extends ServiceImpl implements IBatchService { + + @Autowired + private IProductDeviceTypeService deviceTypeService; + @Autowired + private IDeviceService deviceService; + + @Transactional(rollbackFor=Exception.class) + @Override + public ResponseData addBatchAndDevices(List batches, Task task) { + //提交前先验证是否已经存在,若存在且批次号或每批数量改变先删除 + try { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("task_id", task.getTaskId()); + List batchList = this.selectList(entityWrapper); + Map batchMap= new HashMap<>(); + Map batchMap1= new HashMap<>(); + List batchIdlist = new ArrayList<>(); + for (Batch batch : batches) { + batchMap.put(batch.getBatchNumber(),batch.getBatchCount()); + batch.setTaskId(task.getTaskId()); + batch.setDevtypeId(task.getDevtypeId()); + batchIdlist.add(batch.getId()); + } + for (Batch batch : batchList) { + batchMap1.put(batch.getBatchNumber(),batch.getBatchCount()); + } + + //若批次号和数量不变只更新批次表 + if (DeviceUtil.equalMap(batchMap, batchMap1)) { + this.insertOrUpdateBatch(batches); + } + //若批次号和数量更新,更新设备表(删除批次相关的设备后,写入新的设备) + else { + + //验证设备数量是否合格 + ProductDeviceType deviceType = deviceTypeService.selectDeviceTypeByModel(task.getDevmodeId()); + Map resultMap = DeviceUtil.validate(deviceType, batches, task); + if (!Boolean.valueOf(resultMap.get("success").toString())) { + return ResponseData.error(400, resultMap.get("msg").toString()); + } + //删除批次 + EntityWrapper batchEntityWrapper = new EntityWrapper<>(); + batchEntityWrapper.eq("task_id", task.getTaskId()); + this.delete(batchEntityWrapper); + //删除设备 + EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); + deviceEntityWrapper.in("batch_id", batchIdlist); + deviceEntityWrapper.eq("devtype_id",task.getDevtypeId()); + deviceService.delete(deviceEntityWrapper); + + //写入批次 + this.insertBatch(batches); + //写入设备 + List deviceList = DeviceUtil.createDevCodes(deviceType, batches); + deviceService.insertBatch(deviceList); + } + } catch (Exception e) { + e.printStackTrace(); + } + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java new file mode 100644 index 0000000..fac60bb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.dao.TaskMapper; +import com.casic.missiles.modular.task.service.ITaskService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class TaskServiceImpl extends ServiceImpl implements ITaskService { + +} diff --git a/casic-web/pom.xml b/casic-web/pom.xml new file mode 100644 index 0000000..f9f1c84 --- /dev/null +++ b/casic-web/pom.xml @@ -0,0 +1,300 @@ + + + 4.0.0 + + com.casic + casic-product-device + ../pom.xml + 1.0.0-SNAPSHOT + + casic-web + ${pro.version} + jar + casic-web + casic web启动入口 + + + + dev + + true + + + dev + true + 3600 + 3600 + + + + + test + + test + false + 180 + 180 + + + + + prod + + prod + true + 3600 + 3600 + + + + + + + + + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-admin-core + ${casic.version} + + + com.casic + casic-admin-area + ${casic.version} + + + + + + + + + + com.casic + casic-device + ${pro.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-cache + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + org.springframework.boot + spring-boot-devtools + true + + + + + + org.apache.shiro + shiro-core + + + slf4j-api + org.slf4j + + + + + org.apache.shiro + shiro-spring + + + org.apache.shiro + shiro-ehcache + + + slf4j-api + org.slf4j + + + + + org.ehcache + ehcache + ${ehcache.version} + + + + commons-io + commons-io + + + com.github.penggle + kaptcha + + + com.google.zxing + core + + + com.ibeetl + beetl + + + org.apache.commons + commons-lang3 + + + com.oracle + ojdbc6 + ${oracle.version} + + + org.codehaus.groovy + groovy-all + true + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + org.apache.maven.plugins + maven-jar-plugin + + + + /config/** + **/MockController.class + + + + + + + + + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + maven-assembly-plugin + + + false + + src/main/build/package.xml + + + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-resources-plugin + 2.6 + + + ${resource.delimiter} + + true + + + + copy-resources + validate + + copy-resources + + + ${project.build.outputDirectory} + + + + src/main/resources + true + + + + + + + + + + src/main/webapp + + + src/main/resources + + + src/main/java + + **/*.xml + + true + + + + + diff --git "a/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" "b/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" new file mode 100644 index 0000000..9656df2 --- /dev/null +++ "b/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" @@ -0,0 +1,4 @@ +@echo off +title 智慧城管 +java -jar guns-web-1.0.0-SNAPSHOT.jar +@pause diff --git a/casic-web/src/main/build/package.xml b/casic-web/src/main/build/package.xml new file mode 100644 index 0000000..68b7576 --- /dev/null +++ b/casic-web/src/main/build/package.xml @@ -0,0 +1,26 @@ + + + package + + zip + + true + + + src/main/bin + / + + + src/main/resources/config + / + + + ${project.build.directory} + / + + *.jar + + + + + \ No newline at end of file diff --git a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java new file mode 100644 index 0000000..0b0c3fb --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java @@ -0,0 +1,35 @@ +package com.casic.missiles; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * SpringBoot方式启动类 + * + * @author casic + * @Date 2017/5/21 12:06 + */ +@SpringBootApplication +@ServletComponentScan +@EnableTransactionManagement(proxyTargetClass = true) +public class CasicApplication { + + private static final Logger logger = LoggerFactory.getLogger(CasicApplication.class); + + public static void main(String[] args){ + SpringApplication.run(CasicApplication.class, args); + logger.info("GunsApplication is success!"); + + } + +} + + + + + + diff --git a/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java new file mode 100644 index 0000000..269025c --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java @@ -0,0 +1,18 @@ +package com.casic.missiles; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.support.SpringBootServletInitializer; + +/** + * Guns Web程序启动类 + * + * @author fengshuonan + * @date 2017-05-21 9:43 + */ +public class CasicServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(CasicApplication.class); + } +} diff --git a/casic-web/src/main/java/com/casic/missiles/controller/MockController.java b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java new file mode 100644 index 0000000..a8285e8 --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java @@ -0,0 +1,83 @@ +package com.casic.missiles.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.log.LogManager; +import com.casic.missiles.core.log.factory.LogTaskFactory; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.core.shiro.ShiroUser; +import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.contant.PermissionContant; +import com.casic.missiles.modular.system.dto.LoginResult; +import org.apache.commons.lang3.StringUtils; +import org.apache.shiro.authc.UsernamePasswordToken; +import org.apache.shiro.subject.Subject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.servlet.http.HttpServletRequest; +import java.security.NoSuchAlgorithmException; +import java.util.Map; + +import static com.casic.missiles.core.support.HttpKit.getIp; + +/** + * 仅为mock登录使用 + */ +@Controller +@RequestMapping("/route") +public class MockController extends BaseController { + private static final Logger logger = LoggerFactory.getLogger(MockController.class); + + /** + * 获取mockToken + */ + @GetMapping("/mockToken") + @ResponseBody + public Object subdepts(HttpServletRequest request, String username, String password) { + ShiroKit.getSession().setAttribute(PermissionContant.IS_APP, false); + SuccessResponseData resultData = new SuccessResponseData(); + if (ToolUtil.isOneEmpty(username, password)) { + username = "admin"; + password = "1111111a"; + } + Subject currentUser = ShiroKit.getSubject(); + + try { + Map key = RSAUtils.genKeyPair(); + ShiroKit.getSession().setAttribute(PermissionContant.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey)); + logger.info("秘钥:".concat(key.get(RSAUtils.RSAPublicKey))); + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + + + UsernamePasswordToken token = new UsernamePasswordToken(username, password.toCharArray()); + token.setRememberMe(false); + try { + currentUser.login(token); + } catch (Exception e) { + e.printStackTrace(); + } + ShiroUser shiroUser = ShiroKit.getUser(); + super.getSession().setAttribute("shiroUser", shiroUser); + super.getSession().setAttribute("username", shiroUser.getAccount()); + + super.getSession().setAttribute(PermissionContant.SESSION_KEY, shiroUser.getId()); + + LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp())); + + ShiroKit.getSession().setAttribute("sessionFlag", true); + resultData.setData(new LoginResult(ShiroKit.getSession().getId().toString(), null)); + resultData.setMessage("登录成功"); + return resultData; + } + +} diff --git a/casic-web/src/main/resources/application.yml b/casic-web/src/main/resources/application.yml new file mode 100644 index 0000000..70cc33b --- /dev/null +++ b/casic-web/src/main/resources/application.yml @@ -0,0 +1,18 @@ +########################################################## +################## 所有profile共有的配置 ################# +########################################################## +spring: + profiles: + active: @activatedProperties@ + datasource: + driver-class-name: com.mysql.jdbc.Driver + jms: + pub-sub-domain: true + aop: + proxy-target-class: true #false为启用jdk默认动态代理,true为cglib动态代理 +################### mybatis-plus配置 ################### +################### guns配置 ################### +casic: + kaptcha-open: true #是否开启登录时验证码 (true/false) + file-upload-path: d:/tmp #文件上传目录(不配置的话为java.io.tmpdir目录) + nologin-urls: /user/login,/kaptcha,/config/baseConfig \ No newline at end of file diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml new file mode 100644 index 0000000..99216e3 --- /dev/null +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -0,0 +1,24 @@ +server: + port: 8083 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://139.198.17.115:3000/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: root + initial-size: 2 + min-idle: 1 +#flowable数据源和多数据源配置 +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /user/login,/user/appLogin,/kaptcha,/config/baseConfig,/route/mockToken,/process/processDiagram,/enterprise2/list,/enterprise2/report,/enterprise3/list,enterprise3/report + file-upload-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\upload\ + file-download-path: D:\tmp\ + producerName: producer + repairName: repair +logging: + level.root: info + level.com.casic: debug + path: logs/ + file: missiles.log + diff --git a/casic-web/src/main/resources/config/application-prod.yml b/casic-web/src/main/resources/config/application-prod.yml new file mode 100644 index 0000000..d54ce16 --- /dev/null +++ b/casic-web/src/main/resources/config/application-prod.yml @@ -0,0 +1,20 @@ +server: + port: 8093 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://139.198.17.115:3000/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: root + initial-size: 2 + min-idle: 1 +#flowable数据源和多数据源配置 +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /user/login,/user/appLogin,/kaptcha,/config/baseConfig,/route/mockToken,/process/processDiagram + file-upload-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\upload +logging: + level.root: info + level.com.casic: debug + path: logs/ + file: missiles.log \ No newline at end of file diff --git a/casic-web/src/main/resources/config/application-test.yml b/casic-web/src/main/resources/config/application-test.yml new file mode 100644 index 0000000..40ec8f5 --- /dev/null +++ b/casic-web/src/main/resources/config/application-test.yml @@ -0,0 +1,21 @@ +server: + port: 8093 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://139.198.17.115:3000/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: root + initial-size: 2 + min-idle: 1 +#flowable数据源和多数据源配置 +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /user/login,/user/appLogin,/kaptcha,/config/baseConfig,/route/mockToken,/process/processDiagram + file-upload-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\upload +logging: + level.root: info + level.com.casic: debug + path: logs/ + file: missiles.log + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java new file mode 100644 index 0000000..4670df3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 集中器相关日志 + */ +public class ProjectDict extends AbstractDictMap { + public static final String PROJECT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + @Override + public void init() { + put("projectName","项目名称"); + put("projectSimpleName","项目简称"); + put("projectManager","项目经理"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java new file mode 100644 index 0000000..7981a17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dto; + +/** + * 用于设备类型展示 + * @author test203 + * @date 2020-04-03 + */ +public class DeviceTypeDto { + private Long id; + private String productName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java new file mode 100644 index 0000000..f254585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java @@ -0,0 +1,361 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.math.BigDecimal; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; + +/** + *

+ * 管理员表 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@TableName("sys_user") +public class Account extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + /** + * 头像 + */ + private String avatar; + /** + * 账号 + */ + private String account; + /** + * 密码 + */ + private String password; + /** + * md5密码盐 + */ + private String salt; + /** + * 名字 + */ + private String name; + /** + * 生日 + */ + private Date birthday; + /** + * 性别(1:男 2:女) + */ + private String sex; + /** + * 电子邮件 + */ + private String email; + /** + * 电话 + */ + private String phone; + /** + * 角色id + */ + private String roleid; + /** + * 部门id + */ + private Long deptid; + /** + * 状态(1:启用 2:冻结 3:删除) + */ + private String status; + /** + * 创建时间 + */ + private Date createtime; + /** + * 保留字段 + */ + private Integer version; + private String targetid; + private String targetname; + @TableField("password_sync") + private String passwordSync; + @TableField("IS_SYNC") + private Integer isSync; + private String simplename; + /** + * 同步组织ID + */ + @TableField("TARGET_DEPTID_SYNC") + private String targetDeptidSync; + @TableField("LOGIN_IP") + private String loginIp; + @TableField("LOGIN_MAC") + private String loginMac; + /** + * 最后在线时间 + */ + @TableField("LAST_TIME") + private Date lastTime; + /** + * 经度 + */ + @TableField("POSITION_LNG") + private BigDecimal positionLng; + /** + * 纬度 + */ + @TableField("POSITION_LAT") + private BigDecimal positionLat; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt() { + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getRoleid() { + return roleid; + } + + public void setRoleid(String roleid) { + this.roleid = roleid; + } + + public Long getDeptid() { + return deptid; + } + + public void setDeptid(Long deptid) { + this.deptid = deptid; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + public String getTargetid() { + return targetid; + } + + public void setTargetid(String targetid) { + this.targetid = targetid; + } + + public String getTargetname() { + return targetname; + } + + public void setTargetname(String targetname) { + this.targetname = targetname; + } + + public String getPasswordSync() { + return passwordSync; + } + + public void setPasswordSync(String passwordSync) { + this.passwordSync = passwordSync; + } + + public Integer getIsSync() { + return isSync; + } + + public void setIsSync(Integer isSync) { + this.isSync = isSync; + } + + public String getSimplename() { + return simplename; + } + + public void setSimplename(String simplename) { + this.simplename = simplename; + } + + public String getTargetDeptidSync() { + return targetDeptidSync; + } + + public void setTargetDeptidSync(String targetDeptidSync) { + this.targetDeptidSync = targetDeptidSync; + } + + public String getLoginIp() { + return loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getLoginMac() { + return loginMac; + } + + public void setLoginMac(String loginMac) { + this.loginMac = loginMac; + } + + public Date getLastTime() { + return lastTime; + } + + public void setLastTime(Date lastTime) { + this.lastTime = lastTime; + } + + public BigDecimal getPositionLng() { + return positionLng; + } + + public void setPositionLng(BigDecimal positionLng) { + this.positionLng = positionLng; + } + + public BigDecimal getPositionLat() { + return positionLat; + } + + public void setPositionLat(BigDecimal positionLat) { + this.positionLat = positionLat; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", avatar=" + avatar + + ", account=" + account + + ", password=" + password + + ", salt=" + salt + + ", name=" + name + + ", birthday=" + birthday + + ", sex=" + sex + + ", email=" + email + + ", phone=" + phone + + ", roleid=" + roleid + + ", deptid=" + deptid + + ", status=" + status + + ", createtime=" + createtime + + ", version=" + version + + ", targetid=" + targetid + + ", targetname=" + targetname + + ", passwordSync=" + passwordSync + + ", isSync=" + isSync + + ", simplename=" + simplename + + ", targetDeptidSync=" + targetDeptidSync + + ", loginIp=" + loginIp + + ", loginMac=" + loginMac + + ", lastTime=" + lastTime + + ", positionLng=" + positionLng + + ", positionLat=" + positionLat + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java new file mode 100644 index 0000000..81516b7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -0,0 +1,110 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_batch") +public class Batch extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_number") + private Long batchNumber; + @TableField("batch_count") + private Long batchCount; + @TableField("contract_id") + private Long contractId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("task_id") + private Long taskId; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(Long batchNumber) { + this.batchNumber = batchNumber; + } + + public Long getBatchCount() { + return batchCount; + } + + public void setBatchCount(Long batchCount) { + this.batchCount = batchCount; + } + + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Batch{" + + "id=" + id + + ", batchNumber=" + batchNumber + + ", batchCount=" + batchCount + + ", contractId=" + contractId + + ", taskId=" + taskId + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java new file mode 100644 index 0000000..893a1ed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -0,0 +1,186 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_contract") +public class Contract extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("contract_number") + private String contractNumber; + @TableField("contract_name") + private String contractName; + @TableField("contract_content") + private String contractContent; + @TableField("contract_amount") + private String contractAmount; + @TableField("external_project_apply") + private String externalProjectApply; + @TableField("external_contract_apply") + private String externalContractApply; + @TableField("principal") + private String principal; + @TableField("external_check_apply") + private String externalCheckApply; + @TableField("contract_factory") + private String contractFactory; + @TableField("createtime") + private Date createtime; + @TableField(exist = false) + private String paymentStatus; + @TableField(exist = false) + private String netFlow; + @TableField("deptid") + private String deptid; + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getContractName() { + return contractName; + } + + public void setContractName(String contractName) { + this.contractName = contractName; + } + + public String getContractContent() { + return contractContent; + } + + public void setContractContent(String contractContent) { + this.contractContent = contractContent; + } + + public String getContractAmount() { + return contractAmount; + } + + public void setContractAmount(String contractAmount) { + this.contractAmount = contractAmount; + } + + public String getExternalProjectApply() { + return externalProjectApply; + } + + public void setExternalProjectApply(String externalProjectApply) { + this.externalProjectApply = externalProjectApply; + } + + public String getExternalContractApply() { + return externalContractApply; + } + + public void setExternalContractApply(String externalContractApply) { + this.externalContractApply = externalContractApply; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalCheckApply() { + return externalCheckApply; + } + + public void setExternalCheckApply(String externalCheckApply) { + this.externalCheckApply = externalCheckApply; + } + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public String getContractFactory() { + return contractFactory; + } + + public void setContractFactory(String contractFactory) { + this.contractFactory = contractFactory; + } + + public String getNetFlow() { + return netFlow; + } + + public void setNetFlow(String netFlow) { + this.netFlow = netFlow; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Contract{" + + "contractNumber=" + contractNumber + + ", contractName=" + contractName + + ", contractContent=" + contractContent + + ", contractAmount=" + contractAmount + + ", externalProjectApply=" + externalProjectApply + + ", externalContractApply=" + externalContractApply + + ", principal=" + principal + + ", id=" + id + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java new file mode 100644 index 0000000..8718d91 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -0,0 +1,150 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_device") +public class Device extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_id") + private Long batchId; + private String devcode; + @TableField("devtype_id") + private Long devtypeId; + @TableField("is_send") + private String isSend; + private String longitude; + private String latitude; + @TableField("install_height") + private String installHeight; + private String iccid; + private Long imei; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public Long getImei() { + return imei; + } + + public void setImei(Long imei) { + this.imei = imei; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Device{" + + "id=" + id + + ", batchId=" + batchId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", isSend=" + isSend + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", installHeight=" + installHeight + + ", iccid=" + iccid + + ", imei=" + imei + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java new file mode 100644 index 0000000..870c36f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_payments") +public class Payments extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @TableField("paytime") + private Date paytime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getPaytime() { + return paytime; + } + + public void setPaytime(Date paytime) { + this.paytime = paytime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Payments{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", paytime=" + paytime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java new file mode 100644 index 0000000..ae6b585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -0,0 +1,285 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_device_type") +public class ProductDeviceType extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 产品名称 + */ + @TableField("product_name") + private String productName; + /** + * 产品型号 + */ + @TableField("product_model") + private String productModel; + + /** + * 通讯版本号 + */ + @TableField("communication_version") + private String communicationVersion; + + /** + * 产品类型 + */ + @TableField("product_type") + private String productType; + + /** + * 整机版本号 + */ + @TableField("machine_version") + private String machineVersion; + /** + * 硬件版本号 + */ + @TableField("hardware_version") + private String hardwareVersion; + /** + * 软件版本号 + */ + @TableField("software_version") + private String softwareVersion; + /** + * 设计归档 + */ + @TableField("design_archive") + private String designArchive; + /** + * 批产归档 + */ + @TableField("batch_filing") + private String batchFiling; + /** + * 状态 + */ + @TableField("status") + private Integer status; + /** + * 性能指标 + */ + @TableField("kpi") + private String kpi; + /** + * 批产负责人 + */ + @TableField("principal") + private String principal; + /** + * 定额汇总表 + */ + @TableField("quota_summary") + private String quotaSummary; + + /** + * 权属部门 + */ + @TableField("deptid") + private String deptid; + + /** + * 备注 + */ + @TableField("descn") + private String descn; + + @TableField("createtime") + private Date createtime; + + + @TableField(exist = false) + private String statusFmt; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } + + public String getMachineVersion() { + return machineVersion; + } + + public void setMachineVersion(String machineVersion) { + this.machineVersion = machineVersion; + } + + public String getHardwareVersion() { + return hardwareVersion; + } + + public void setHardwareVersion(String hardwareVersion) { + this.hardwareVersion = hardwareVersion; + } + + public String getSoftwareVersion() { + return softwareVersion; + } + + public void setSoftwareVersion(String softwareVersion) { + this.softwareVersion = softwareVersion; + } + + public String getDesignArchive() { + return designArchive; + } + + public void setDesignArchive(String designArchive) { + this.designArchive = designArchive; + } + + public String getBatchFiling() { + return batchFiling; + } + + public void setBatchFiling(String batchFiling) { + this.batchFiling = batchFiling; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getKpi() { + return kpi; + } + + public void setKpi(String kpi) { + this.kpi = kpi; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public String getQuotaSummary() { + return quotaSummary; + } + + public void setQuotaSummary(String quotaSummary) { + this.quotaSummary = quotaSummary; + } + + public String getStatusFmt() { + return statusFmt; + } + + public void setStatusFmt(String statusFmt) { + this.statusFmt = statusFmt; + } + + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getProductType() { + return productType; + } + + public void setProductType(String productType) { + this.productType = productType; + } + + public String getCommunicationVersion() { + return communicationVersion; + } + + public void setCommunicationVersion(String communicationVersion) { + this.communicationVersion = communicationVersion; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductDeviceType{" + + "id=" + id + + ", productName=" + productName + + ", productModel=" + productModel + + ", machineVersion=" + machineVersion + + ", hardwareVersion=" + hardwareVersion + + ", softwareVersion=" + softwareVersion + + ", designArchive=" + designArchive + + ", batchFiling=" + batchFiling + + ", status=" + status + + ", kpi=" + kpi + + ", principal=" + principal + + ", quotaSummary=" + quotaSummary + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java new file mode 100644 index 0000000..b0fd924 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java @@ -0,0 +1,187 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_factory_information") +public class ProductFactoryInformation extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 厂家名称 + */ + @TableField("name") + private String name; + /** + * 厂家联系人 + */ + @TableField("person_name") + private String personName; + /** + * 地址 + */ + @TableField("address") + private String address; + /** + * 电话 + */ + @TableField("phone") + private String phone; + /** + * 开户行 + */ + @TableField("bank") + private String bank; + /** + * 税号 + */ + @TableField("tax_number") + private String taxNumber; + /** + * 在产设备 + */ + @TableField("producting_device") + private String productingDevice; + /** + * 设备报价表 + */ + @TableField("equipment_quotation") + private String equipmentQuotation; + + @TableField("createtime") + private Date createtime =new Date(); + + @TableField("deptid") + private String deptid; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPersonName() { + return personName; + } + + public void setPersonName(String personName) { + this.personName = personName; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getBank() { + return bank; + } + + public void setBank(String bank) { + this.bank = bank; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getProductingDevice() { + return productingDevice; + } + + public void setProductingDevice(String productingDevice) { + this.productingDevice = productingDevice; + } + + public String getEquipmentQuotation() { + return equipmentQuotation; + } + + public void setEquipmentQuotation(String equipmentQuotation) { + this.equipmentQuotation = equipmentQuotation; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductFactoryInformation{" + + "id=" + id + + ", name=" + name + + ", personName=" + personName + + ", address=" + address + + ", phone=" + phone + + ", bank=" + bank + + ", taxNumber=" + taxNumber + + ", productingDevice=" + productingDevice + + ", equipmentQuotation=" + equipmentQuotation + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java new file mode 100644 index 0000000..00cbc92 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -0,0 +1,99 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@TableName("product_project") +public class Project extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_name") + private String projectName; + @TableField("project_simple_name") + private String projectSimpleName; + @TableField("project_manager") + private String projectManager; + private String descn; + @TableField("createtime") + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getProjectManager() { + return projectManager; + } + + public void setProjectManager(String projectManager) { + this.projectManager = projectManager; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Project{" + + "id=" + id + + ", projectName=" + projectName + + ", projectSimpleName=" + projectSimpleName + + ", projectManager=" + projectManager + + ", descn=" + descn + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java new file mode 100644 index 0000000..658c2e1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java @@ -0,0 +1,126 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_reimburse") +public class Reimburse extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mi:ss") + @TableField("reimburse_time") + private Date reimburseTime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getReimburseTime() { + return reimburseTime; + } + + public void setReimburseTime(Date reimburseTime) { + this.reimburseTime = reimburseTime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Reimburse{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", reimburseTime=" + reimburseTime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java new file mode 100644 index 0000000..987efa7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java @@ -0,0 +1,141 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_task") +public class Task extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_id") + private Long projectId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("devmode_id") + private String devmodeId; + private Long devcount; + @TableField("delivery_time") + private Date deliveryTime; + private String demand; + private Date createtime; + @TableField(exist = false) + private String deliveryTimeFmt; + + @TableField(exist = false) + private Long taskId; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getProjectId() { + return projectId; + } + + public void setProjectId(Long projectId) { + this.projectId = projectId; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDevmodeId() { + return devmodeId; + } + + public void setDevmodeId(String devmodeId) { + this.devmodeId = devmodeId; + } + + public Long getDevcount() { + return devcount; + } + + public void setDevcount(Long devcount) { + this.devcount = devcount; + } + + public Date getDeliveryTime() { + return deliveryTime; + } + + public void setDeliveryTime(Date deliveryTime) { + this.deliveryTime = deliveryTime; + } + + public String getDemand() { + return demand; + } + + public void setDemand(String demand) { + this.demand = demand; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeliveryTimeFmt() { + return deliveryTimeFmt; + } + + public void setDeliveryTimeFmt(String deliveryTimeFmt) { + this.deliveryTimeFmt = deliveryTimeFmt; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Task{" + + "id=" + id + + ", projectId=" + projectId + + ", devtypeId=" + devtypeId + + ", devmodeId=" + devmodeId + + ", devcount=" + devcount + + ", deliveryTime=" + deliveryTime + + ", demand=" + demand + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java new file mode 100644 index 0000000..7785de5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface IAccountService extends IService { + + /** + * 根据用户名查用户 + * @param userName + * @return + */ + Account findUserByName(String userName); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java new file mode 100644 index 0000000..d8b5e87 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IContractService extends IService { + List selectPageList(Page page, String keyword1, String keyword2, String keyword3); + List reportExport(String keyword1, String keyword2, String keyword3); + void importContract( List contracts); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java new file mode 100644 index 0000000..0f2d6e0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IPaymentsService extends IService { + + boolean validate(Long proId,String money,String reorder); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java new file mode 100644 index 0000000..71490df --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -0,0 +1,62 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductDeviceTypeService extends IService { + + /** + * 批量导入设备类型列表 + * @param results + */ + void importDeviceType(List results); + + /** + * 导出列表 + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List reportExport(String keyword1,String keyword2,String keyword3); + + + /** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectPageDataScope(DataScope dataScope, Page page, + String keyword1, String keyword2, String keyword3); + + /** + * 获取在产的设备类型 + * @return + */ + List selectDeviceTypeList(); + + /** + * 根据产品型号获取产品 + * @param deviceModel + * @return + */ + ProductDeviceType selectDeviceTypeByModel(String deviceModel); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java new file mode 100644 index 0000000..455f60a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductFactoryInformationService extends IService { + /** + * 根据条件导出列表 + * @param keyword1 + * @param keyword2 + * @return + */ + List reportExport(String keyword1, String keyword2); + + + /** + * 导入 + * @param results + */ + void importDeviceType(List results); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java new file mode 100644 index 0000000..3c27bd1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface IProjectService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java new file mode 100644 index 0000000..ee0a55c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IReimburseService extends IService { + boolean validate(Long proId,String money,String reorder); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java new file mode 100644 index 0000000..09ce653 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.dao.AccountMapper; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.stereotype.Service; + +/** + *

+ * 管理员表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@Service +public class AccountServiceImpl extends ServiceImpl implements IAccountService { + + @Override + public Account findUserByName(String userName) { + + EntityWrapper userEntityWrapper = new EntityWrapper<>(); + userEntityWrapper.eq("name",userName); + userEntityWrapper.eq("status","1"); + return this.selectOne(userEntityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java new file mode 100644 index 0000000..dd04da0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java @@ -0,0 +1,138 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.shiro.ShiroUser; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ContractMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IPaymentsService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ContractServiceImpl extends ServiceImpl implements IContractService { + @Autowired + private IPaymentsService paymentsService; + @Autowired + private ICommonPermissionService permissionService; + @Autowired + private IAccountService userService; + @Value("${casic.producerName}") + private String producerName; + @Value("${casic.repairName}") + private String repairName; + + @Override + public List selectPageList(Page page, String keyword1, String keyword2, String keyword3) { + +// EntityWrapper query = new EntityWrapper<>(); +// if (ToolUtil.isNotEmpty(keyword1)) { +// query.like("contract_factory", keyword1); +// } +// if (ToolUtil.isNotEmpty(keyword3)) { +// query.like("contract_number", keyword3); +// } +// List contractList = this.selectPage(page, query).getRecords(); +// contractList.forEach(contract -> { +// contract.setPaymentStatus(getPaymentStatus(contract)); +// String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" +// + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" +// + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); +// contract.setNetFlow(netFlowStr); +// +// }); +// return contractList; + + + List contractList = new ArrayList<>(); + DataScope dataScope = permissionService.getCurrUserDataScope(); + ShiroUser currentUser = permissionService.getCurrLoginUser(); + if (currentUser.getRoleTips().contains(producerName) || currentUser.getRoleTips().contains(repairName)) { + contractList = this.baseMapper.findContractList(dataScope,page, currentUser.getName(), keyword1, keyword2, keyword3); + } else { + contractList = this.baseMapper.findContractList(dataScope,page, "", keyword1, keyword2, keyword3); + } + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + + }); + return contractList; + } + + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + + + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("contractFactory", keyword1); + } + if (ToolUtil.isNotEmpty(keyword3)) { + query.like("contract_number", keyword3); + } + + List contractList = this.selectList(query); + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); +// permissionService.findInDictByCode("applyStatus") + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + }); + + return contractList; + } + + @Override + public void importContract(List contracts) { + contracts.forEach(contract -> { + EntityWrapper query = new EntityWrapper<>(); + query.eq("contract_number", contract.getContractNumber()); + this.delete(query); + Account user = userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); + this.insert(contract); + }); + } + + public String getPaymentStatus(Contract contract) { + Map paraMap = new HashMap<>(); + paraMap.put("pro_id", contract.getId()); + List paymentsList = paymentsService.selectByMap(paraMap); + float sum = 0; + for (Payments payments : paymentsList) { + sum = sum + (ToolUtil.isNotEmpty(payments.getMoney()) ? Float.parseFloat(payments.getMoney()) : 0); + } + DecimalFormat df = new DecimalFormat("0"); + return sum + "," + df.format(100 * sum / Float.valueOf(contract.getContractAmount())) + "%"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java new file mode 100644 index 0000000..0c125d8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PaymentsMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class PaymentsServiceImpl extends ServiceImpl implements IPaymentsService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money,String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List paymentsList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Payments payments : paymentsList) { + if(reorder.equals(payments.getReorder())) continue; + total += ToolUtil.isNotEmpty(payments.getMoney()) ? + Long.valueOf(payments.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java new file mode 100644 index 0000000..ac6d447 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductDeviceTypeMapper; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.swing.text.html.parser.Entity; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductDeviceTypeServiceImpl extends ServiceImpl implements IProductDeviceTypeService { + + @Autowired + private ICommonPermissionService permissionService; + + @Transactional(rollbackFor = Exception.class) + @Override + public void importDeviceType(List results) { + + for (ProductDeviceType productDeviceType : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + this.baseMapper.delete(wrapper); + this.baseMapper.insert(productDeviceType); + } + } + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + wrapper.like("principal", keyword3); + } + List productDeviceTypes = this.selectList(wrapper); + for (ProductDeviceType productDeviceType : productDeviceTypes) { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + } + return productDeviceTypes; + } + + @Override + public List selectPageDataScope(DataScope dataScope, Page page, String keyword1, String keyword2, String keyword3) { + + List productDeviceTypeList = this.baseMapper.selectDataScopePage(dataScope, page, keyword1, keyword2, keyword3); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + return productDeviceTypeList; + + } + + @Override + public List selectDeviceTypeList() { + return this.baseMapper.selectDeviceTypeList(); + } + + + @Override + public ProductDeviceType selectDeviceTypeByModel(String deviceModel) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("product_model",deviceModel); + return this.selectOne(entityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java new file mode 100644 index 0000000..efe4410 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java @@ -0,0 +1,50 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductFactoryInformationMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductFactoryInformationServiceImpl extends ServiceImpl implements IProductFactoryInformationService { + + @Override + public List reportExport(String keyword1, String keyword2) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.like("producting_device", keyword2); + } + List productFactoryInformations = this.selectList(wrapper); + + return productFactoryInformations; + } + + + @Transactional(rollbackFor=Exception.class) + @Override + public void importDeviceType(List results) { + for (ProductFactoryInformation productFactoryInformation : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + delete(wrapper); + this.baseMapper.insert(productFactoryInformation); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java new file mode 100644 index 0000000..34655b0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.dao.ProjectMapper; +import com.casic.missiles.modular.system.service.IProjectService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@Service +public class ProjectServiceImpl extends ServiceImpl implements IProjectService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java new file mode 100644 index 0000000..5e8b77b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java @@ -0,0 +1,48 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.dao.ReimburseMapper; +import com.casic.missiles.modular.system.service.IReimburseService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ReimburseServiceImpl extends ServiceImpl implements IReimburseService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money, String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List reimburseList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Reimburse reimburse : reimburseList) { + if (reorder.equals(reimburse.getReorder())) continue; + total += ToolUtil.isNotEmpty(reimburse.getMoney()) ? + Long.valueOf(reimburse.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java new file mode 100644 index 0000000..d5ffadb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java @@ -0,0 +1,235 @@ +package com.casic.missiles.modular.system.util; + +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; + +import java.util.*; + +/** + * @author test203 + * @since 2020-04-06 + */ +public class DeviceUtil { + private final static String factoryCode = "20"; + private final static String wellExcludeCode = "4120"; + private final static String loraDevice = "A"; + private static Map devTypeCountHashMap = new HashMap(); + + static { + devTypeCountHashMap.put("电子标识器", 99999L); + devTypeCountHashMap.put("井盖状态监测仪", 65534L); + devTypeCountHashMap.put("灯箱控制器", 65535L); + devTypeCountHashMap.put("单灯控制器(单路)", 65535L); + devTypeCountHashMap.put("单灯控制器(双路)", 65535L); + devTypeCountHashMap.put("数据集中器", 255L); + devTypeCountHashMap.put("有害气体监测仪", 999L); + } + + public static List createDevCodes(ProductDeviceType deviceType, List batches) { + List deviceList = new ArrayList<>(); + try { + if ("电子标识器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 年份XX 批次号XX 编号XXXXX + String devCode = deviceType.getProductType() + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%05d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("井盖状态监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + String wellCode4 = String.format("%04x", i); + if (wellExcludeCode.equals(wellCode4)) { + continue; + } + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + wellCode4; + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("灯箱控制器".equals(deviceType.getProductName()) || + "单灯控制器(单路)".equals(deviceType.getProductName()) || + "单灯控制器(双路)".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("数据集中器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("有害气体监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型WS2000X- 年份XX 批次序号XXXX 编号XXX + String devCode = deviceType.getProductType() + + getYearFmt() + + String.format("%04d", batch.getBatchNumber()) + + String.format("%03d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } + //其他设备类型分lora和非lora版本 + else { + if (loraDevice.equals(deviceType.getCommunicationVersion())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } else { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return deviceList; + } + + + public static Map validate(ProductDeviceType deviceType, List batches, Task task) { + Map resultMap = new HashMap<>(); + boolean success = true; + String msg = ""; + long devSum = null != task ? task.getDevcount() : 0; + long devcount = 0, batchCountMax; + batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? + 0 : devTypeCountHashMap.get(deviceType.getProductName()); + if (0 == batchCountMax) { + if (deviceType.getProductModel().indexOf(loraDevice) + == deviceType.getProductModel().length() - 1) { + batchCountMax = 255; + } else { + batchCountMax = 9999; + } + } + for (Batch batch : batches) { + if (batch.getBatchCount() > batchCountMax) { + success = false; + msg = batch.getBatchNumber() + "批次号数量超过了最大范围" + batchCountMax; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + devcount += batch.getBatchCount(); + } + if (devcount != devSum) { + return returnMsg(); + } + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + + public static Map returnMsg() { + Map resultMap = new HashMap<>(); + resultMap.put("success", false); + resultMap.put("msg", "所有批次数量之和与任务中设备数量不一致!"); + return resultMap; + } + + /** + * 获取编码中的年份 + * + * @return + */ + public static String getYearFmt() { + + return DateUtil.format(new Date(), "yyyy").substring(2); + } + + + /** + * 比较2个map + * + * @param batchMap + * @param batchMap1 + * @return + */ + public static boolean equalMap(Map batchMap, Map batchMap1) { + if (batchMap.size() != batchMap1.size()) { + return false; + } + Iterator iter1 = batchMap.keySet().iterator(); + while (iter1.hasNext()) { + Long map1key = iter1.next(); + String map1value = batchMap.get(map1key).toString(); + String map2value = batchMap1.get(map1key).toString(); + if (!map1value.equals(map2value)) { + return false; + } + } + return true; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java new file mode 100644 index 0000000..33c3535 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java @@ -0,0 +1,43 @@ +package com.casic.missiles.modular.system.util; + +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; + +public class FileUtil { + public static File createFile(String path) throws IOException { + File file = new File(path); + if (!file.exists()) { + file.getParentFile().mkdirs(); + file.createNewFile(); + } + return file; + } + + + public static void downloadLocalFile(HttpServletResponse response,String path, String fileName) throws IOException { + File file = new File(path); + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", "attachment; filename=\"" + URLEncoder.encode(fileName, "UTF-8") + "\""); + response.setContentLength((int) file.length()); + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java new file mode 100644 index 0000000..341d3d1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.task.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.task.service.IBatchService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 批次控制器 + * + * @author dev + * @Date 2020-03-27 15:29:55 + */ +@Controller +@RequestMapping("/batch") +public class BatchController extends BaseController { + + + @Autowired + private IBatchService batchService; + + + /** + * 获取批次列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return batchService.selectList(null); + } + + /** + * 获取批次分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = batchService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增批次并生成设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + @Transactional + public Object add(@RequestBody List batches, Task task) { + + return batchService.addBatchAndDevices(batches,task); + + } + + /** + * 删除批次 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String batchId) { + batchService.deleteById(batchId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("batchIds") List batchIds) { + batchService.deleteBatchIds(batchIds); + return ResponseData.success(); + } + + /** + * 修改批次 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Batch batch) { + batchService.updateById(batch); + return ResponseData.success(); + } + + + /** + * 根据设备类型id + * 查找批次号 + */ + @RequestMapping(value = "/getBatchNumber") + @ResponseBody + public Object getBatchNumber(Long devtypeId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.orderBy("id", false); + Batch batch = batchService.selectOne(entityWrapper); + return ResponseData.success(200, "", batch != null ? batch.getBatchNumber() + 1 : 1); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java new file mode 100644 index 0000000..f463168 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java @@ -0,0 +1,102 @@ +package com.casic.missiles.modular.task.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * 任务控制器 + * + * @author dev + * @Date 2020-03-27 15:28:26 + */ +@Controller +@RequestMapping("/task") +public class TaskController extends BaseController { + + + @Autowired + private ITaskService taskService; + + + /** + * 获取任务列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return taskService.selectList(null); + } + + /** + * 获取任务分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = taskService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增任务 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + taskService.insert(task); + return ResponseData.success(); + } + + /** + * 删除任务 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String taskId) { + taskService.deleteById(taskId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("taskIds") List taskIds) { + taskService.deleteBatchIds(taskIds); + return ResponseData.success(); + } + + /** + * 修改任务 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + taskService.updateById(task); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java new file mode 100644 index 0000000..04c7ef8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.task.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IBatchService extends IService { + + /** + * 添加批次和生成设备 + * @param batches + * @param task + * @return + */ + ResponseData addBatchAndDevices(List batches, Task task); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java new file mode 100644 index 0000000..50e1d37 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.task.service; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface ITaskService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java new file mode 100644 index 0000000..a435e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dao.BatchMapper; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.DeviceUtil; +import com.casic.missiles.modular.task.service.IBatchService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class BatchServiceImpl extends ServiceImpl implements IBatchService { + + @Autowired + private IProductDeviceTypeService deviceTypeService; + @Autowired + private IDeviceService deviceService; + + @Transactional(rollbackFor=Exception.class) + @Override + public ResponseData addBatchAndDevices(List batches, Task task) { + //提交前先验证是否已经存在,若存在且批次号或每批数量改变先删除 + try { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("task_id", task.getTaskId()); + List batchList = this.selectList(entityWrapper); + Map batchMap= new HashMap<>(); + Map batchMap1= new HashMap<>(); + List batchIdlist = new ArrayList<>(); + for (Batch batch : batches) { + batchMap.put(batch.getBatchNumber(),batch.getBatchCount()); + batch.setTaskId(task.getTaskId()); + batch.setDevtypeId(task.getDevtypeId()); + batchIdlist.add(batch.getId()); + } + for (Batch batch : batchList) { + batchMap1.put(batch.getBatchNumber(),batch.getBatchCount()); + } + + //若批次号和数量不变只更新批次表 + if (DeviceUtil.equalMap(batchMap, batchMap1)) { + this.insertOrUpdateBatch(batches); + } + //若批次号和数量更新,更新设备表(删除批次相关的设备后,写入新的设备) + else { + + //验证设备数量是否合格 + ProductDeviceType deviceType = deviceTypeService.selectDeviceTypeByModel(task.getDevmodeId()); + Map resultMap = DeviceUtil.validate(deviceType, batches, task); + if (!Boolean.valueOf(resultMap.get("success").toString())) { + return ResponseData.error(400, resultMap.get("msg").toString()); + } + //删除批次 + EntityWrapper batchEntityWrapper = new EntityWrapper<>(); + batchEntityWrapper.eq("task_id", task.getTaskId()); + this.delete(batchEntityWrapper); + //删除设备 + EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); + deviceEntityWrapper.in("batch_id", batchIdlist); + deviceEntityWrapper.eq("devtype_id",task.getDevtypeId()); + deviceService.delete(deviceEntityWrapper); + + //写入批次 + this.insertBatch(batches); + //写入设备 + List deviceList = DeviceUtil.createDevCodes(deviceType, batches); + deviceService.insertBatch(deviceList); + } + } catch (Exception e) { + e.printStackTrace(); + } + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java new file mode 100644 index 0000000..fac60bb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.dao.TaskMapper; +import com.casic.missiles.modular.task.service.ITaskService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class TaskServiceImpl extends ServiceImpl implements ITaskService { + +} diff --git a/casic-web/pom.xml b/casic-web/pom.xml new file mode 100644 index 0000000..f9f1c84 --- /dev/null +++ b/casic-web/pom.xml @@ -0,0 +1,300 @@ + + + 4.0.0 + + com.casic + casic-product-device + ../pom.xml + 1.0.0-SNAPSHOT + + casic-web + ${pro.version} + jar + casic-web + casic web启动入口 + + + + dev + + true + + + dev + true + 3600 + 3600 + + + + + test + + test + false + 180 + 180 + + + + + prod + + prod + true + 3600 + 3600 + + + + + + + + + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-admin-core + ${casic.version} + + + com.casic + casic-admin-area + ${casic.version} + + + + + + + + + + com.casic + casic-device + ${pro.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-cache + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + org.springframework.boot + spring-boot-devtools + true + + + + + + org.apache.shiro + shiro-core + + + slf4j-api + org.slf4j + + + + + org.apache.shiro + shiro-spring + + + org.apache.shiro + shiro-ehcache + + + slf4j-api + org.slf4j + + + + + org.ehcache + ehcache + ${ehcache.version} + + + + commons-io + commons-io + + + com.github.penggle + kaptcha + + + com.google.zxing + core + + + com.ibeetl + beetl + + + org.apache.commons + commons-lang3 + + + com.oracle + ojdbc6 + ${oracle.version} + + + org.codehaus.groovy + groovy-all + true + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + org.apache.maven.plugins + maven-jar-plugin + + + + /config/** + **/MockController.class + + + + + + + + + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + maven-assembly-plugin + + + false + + src/main/build/package.xml + + + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-resources-plugin + 2.6 + + + ${resource.delimiter} + + true + + + + copy-resources + validate + + copy-resources + + + ${project.build.outputDirectory} + + + + src/main/resources + true + + + + + + + + + + src/main/webapp + + + src/main/resources + + + src/main/java + + **/*.xml + + true + + + + + diff --git "a/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" "b/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" new file mode 100644 index 0000000..9656df2 --- /dev/null +++ "b/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" @@ -0,0 +1,4 @@ +@echo off +title 智慧城管 +java -jar guns-web-1.0.0-SNAPSHOT.jar +@pause diff --git a/casic-web/src/main/build/package.xml b/casic-web/src/main/build/package.xml new file mode 100644 index 0000000..68b7576 --- /dev/null +++ b/casic-web/src/main/build/package.xml @@ -0,0 +1,26 @@ + + + package + + zip + + true + + + src/main/bin + / + + + src/main/resources/config + / + + + ${project.build.directory} + / + + *.jar + + + + + \ No newline at end of file diff --git a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java new file mode 100644 index 0000000..0b0c3fb --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java @@ -0,0 +1,35 @@ +package com.casic.missiles; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * SpringBoot方式启动类 + * + * @author casic + * @Date 2017/5/21 12:06 + */ +@SpringBootApplication +@ServletComponentScan +@EnableTransactionManagement(proxyTargetClass = true) +public class CasicApplication { + + private static final Logger logger = LoggerFactory.getLogger(CasicApplication.class); + + public static void main(String[] args){ + SpringApplication.run(CasicApplication.class, args); + logger.info("GunsApplication is success!"); + + } + +} + + + + + + diff --git a/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java new file mode 100644 index 0000000..269025c --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java @@ -0,0 +1,18 @@ +package com.casic.missiles; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.support.SpringBootServletInitializer; + +/** + * Guns Web程序启动类 + * + * @author fengshuonan + * @date 2017-05-21 9:43 + */ +public class CasicServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(CasicApplication.class); + } +} diff --git a/casic-web/src/main/java/com/casic/missiles/controller/MockController.java b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java new file mode 100644 index 0000000..a8285e8 --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java @@ -0,0 +1,83 @@ +package com.casic.missiles.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.log.LogManager; +import com.casic.missiles.core.log.factory.LogTaskFactory; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.core.shiro.ShiroUser; +import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.contant.PermissionContant; +import com.casic.missiles.modular.system.dto.LoginResult; +import org.apache.commons.lang3.StringUtils; +import org.apache.shiro.authc.UsernamePasswordToken; +import org.apache.shiro.subject.Subject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.servlet.http.HttpServletRequest; +import java.security.NoSuchAlgorithmException; +import java.util.Map; + +import static com.casic.missiles.core.support.HttpKit.getIp; + +/** + * 仅为mock登录使用 + */ +@Controller +@RequestMapping("/route") +public class MockController extends BaseController { + private static final Logger logger = LoggerFactory.getLogger(MockController.class); + + /** + * 获取mockToken + */ + @GetMapping("/mockToken") + @ResponseBody + public Object subdepts(HttpServletRequest request, String username, String password) { + ShiroKit.getSession().setAttribute(PermissionContant.IS_APP, false); + SuccessResponseData resultData = new SuccessResponseData(); + if (ToolUtil.isOneEmpty(username, password)) { + username = "admin"; + password = "1111111a"; + } + Subject currentUser = ShiroKit.getSubject(); + + try { + Map key = RSAUtils.genKeyPair(); + ShiroKit.getSession().setAttribute(PermissionContant.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey)); + logger.info("秘钥:".concat(key.get(RSAUtils.RSAPublicKey))); + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + + + UsernamePasswordToken token = new UsernamePasswordToken(username, password.toCharArray()); + token.setRememberMe(false); + try { + currentUser.login(token); + } catch (Exception e) { + e.printStackTrace(); + } + ShiroUser shiroUser = ShiroKit.getUser(); + super.getSession().setAttribute("shiroUser", shiroUser); + super.getSession().setAttribute("username", shiroUser.getAccount()); + + super.getSession().setAttribute(PermissionContant.SESSION_KEY, shiroUser.getId()); + + LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp())); + + ShiroKit.getSession().setAttribute("sessionFlag", true); + resultData.setData(new LoginResult(ShiroKit.getSession().getId().toString(), null)); + resultData.setMessage("登录成功"); + return resultData; + } + +} diff --git a/casic-web/src/main/resources/application.yml b/casic-web/src/main/resources/application.yml new file mode 100644 index 0000000..70cc33b --- /dev/null +++ b/casic-web/src/main/resources/application.yml @@ -0,0 +1,18 @@ +########################################################## +################## 所有profile共有的配置 ################# +########################################################## +spring: + profiles: + active: @activatedProperties@ + datasource: + driver-class-name: com.mysql.jdbc.Driver + jms: + pub-sub-domain: true + aop: + proxy-target-class: true #false为启用jdk默认动态代理,true为cglib动态代理 +################### mybatis-plus配置 ################### +################### guns配置 ################### +casic: + kaptcha-open: true #是否开启登录时验证码 (true/false) + file-upload-path: d:/tmp #文件上传目录(不配置的话为java.io.tmpdir目录) + nologin-urls: /user/login,/kaptcha,/config/baseConfig \ No newline at end of file diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml new file mode 100644 index 0000000..99216e3 --- /dev/null +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -0,0 +1,24 @@ +server: + port: 8083 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://139.198.17.115:3000/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: root + initial-size: 2 + min-idle: 1 +#flowable数据源和多数据源配置 +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /user/login,/user/appLogin,/kaptcha,/config/baseConfig,/route/mockToken,/process/processDiagram,/enterprise2/list,/enterprise2/report,/enterprise3/list,enterprise3/report + file-upload-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\upload\ + file-download-path: D:\tmp\ + producerName: producer + repairName: repair +logging: + level.root: info + level.com.casic: debug + path: logs/ + file: missiles.log + diff --git a/casic-web/src/main/resources/config/application-prod.yml b/casic-web/src/main/resources/config/application-prod.yml new file mode 100644 index 0000000..d54ce16 --- /dev/null +++ b/casic-web/src/main/resources/config/application-prod.yml @@ -0,0 +1,20 @@ +server: + port: 8093 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://139.198.17.115:3000/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: root + initial-size: 2 + min-idle: 1 +#flowable数据源和多数据源配置 +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /user/login,/user/appLogin,/kaptcha,/config/baseConfig,/route/mockToken,/process/processDiagram + file-upload-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\upload +logging: + level.root: info + level.com.casic: debug + path: logs/ + file: missiles.log \ No newline at end of file diff --git a/casic-web/src/main/resources/config/application-test.yml b/casic-web/src/main/resources/config/application-test.yml new file mode 100644 index 0000000..40ec8f5 --- /dev/null +++ b/casic-web/src/main/resources/config/application-test.yml @@ -0,0 +1,21 @@ +server: + port: 8093 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://139.198.17.115:3000/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: root + initial-size: 2 + min-idle: 1 +#flowable数据源和多数据源配置 +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /user/login,/user/appLogin,/kaptcha,/config/baseConfig,/route/mockToken,/process/processDiagram + file-upload-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\upload +logging: + level.root: info + level.com.casic: debug + path: logs/ + file: missiles.log + diff --git a/casic-web/src/main/resources/ehcache.xml b/casic-web/src/main/resources/ehcache.xml new file mode 100644 index 0000000..78c82d8 --- /dev/null +++ b/casic-web/src/main/resources/ehcache.xml @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java new file mode 100644 index 0000000..4670df3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 集中器相关日志 + */ +public class ProjectDict extends AbstractDictMap { + public static final String PROJECT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + @Override + public void init() { + put("projectName","项目名称"); + put("projectSimpleName","项目简称"); + put("projectManager","项目经理"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java new file mode 100644 index 0000000..7981a17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dto; + +/** + * 用于设备类型展示 + * @author test203 + * @date 2020-04-03 + */ +public class DeviceTypeDto { + private Long id; + private String productName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java new file mode 100644 index 0000000..f254585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java @@ -0,0 +1,361 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.math.BigDecimal; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; + +/** + *

+ * 管理员表 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@TableName("sys_user") +public class Account extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + /** + * 头像 + */ + private String avatar; + /** + * 账号 + */ + private String account; + /** + * 密码 + */ + private String password; + /** + * md5密码盐 + */ + private String salt; + /** + * 名字 + */ + private String name; + /** + * 生日 + */ + private Date birthday; + /** + * 性别(1:男 2:女) + */ + private String sex; + /** + * 电子邮件 + */ + private String email; + /** + * 电话 + */ + private String phone; + /** + * 角色id + */ + private String roleid; + /** + * 部门id + */ + private Long deptid; + /** + * 状态(1:启用 2:冻结 3:删除) + */ + private String status; + /** + * 创建时间 + */ + private Date createtime; + /** + * 保留字段 + */ + private Integer version; + private String targetid; + private String targetname; + @TableField("password_sync") + private String passwordSync; + @TableField("IS_SYNC") + private Integer isSync; + private String simplename; + /** + * 同步组织ID + */ + @TableField("TARGET_DEPTID_SYNC") + private String targetDeptidSync; + @TableField("LOGIN_IP") + private String loginIp; + @TableField("LOGIN_MAC") + private String loginMac; + /** + * 最后在线时间 + */ + @TableField("LAST_TIME") + private Date lastTime; + /** + * 经度 + */ + @TableField("POSITION_LNG") + private BigDecimal positionLng; + /** + * 纬度 + */ + @TableField("POSITION_LAT") + private BigDecimal positionLat; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt() { + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getRoleid() { + return roleid; + } + + public void setRoleid(String roleid) { + this.roleid = roleid; + } + + public Long getDeptid() { + return deptid; + } + + public void setDeptid(Long deptid) { + this.deptid = deptid; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + public String getTargetid() { + return targetid; + } + + public void setTargetid(String targetid) { + this.targetid = targetid; + } + + public String getTargetname() { + return targetname; + } + + public void setTargetname(String targetname) { + this.targetname = targetname; + } + + public String getPasswordSync() { + return passwordSync; + } + + public void setPasswordSync(String passwordSync) { + this.passwordSync = passwordSync; + } + + public Integer getIsSync() { + return isSync; + } + + public void setIsSync(Integer isSync) { + this.isSync = isSync; + } + + public String getSimplename() { + return simplename; + } + + public void setSimplename(String simplename) { + this.simplename = simplename; + } + + public String getTargetDeptidSync() { + return targetDeptidSync; + } + + public void setTargetDeptidSync(String targetDeptidSync) { + this.targetDeptidSync = targetDeptidSync; + } + + public String getLoginIp() { + return loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getLoginMac() { + return loginMac; + } + + public void setLoginMac(String loginMac) { + this.loginMac = loginMac; + } + + public Date getLastTime() { + return lastTime; + } + + public void setLastTime(Date lastTime) { + this.lastTime = lastTime; + } + + public BigDecimal getPositionLng() { + return positionLng; + } + + public void setPositionLng(BigDecimal positionLng) { + this.positionLng = positionLng; + } + + public BigDecimal getPositionLat() { + return positionLat; + } + + public void setPositionLat(BigDecimal positionLat) { + this.positionLat = positionLat; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", avatar=" + avatar + + ", account=" + account + + ", password=" + password + + ", salt=" + salt + + ", name=" + name + + ", birthday=" + birthday + + ", sex=" + sex + + ", email=" + email + + ", phone=" + phone + + ", roleid=" + roleid + + ", deptid=" + deptid + + ", status=" + status + + ", createtime=" + createtime + + ", version=" + version + + ", targetid=" + targetid + + ", targetname=" + targetname + + ", passwordSync=" + passwordSync + + ", isSync=" + isSync + + ", simplename=" + simplename + + ", targetDeptidSync=" + targetDeptidSync + + ", loginIp=" + loginIp + + ", loginMac=" + loginMac + + ", lastTime=" + lastTime + + ", positionLng=" + positionLng + + ", positionLat=" + positionLat + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java new file mode 100644 index 0000000..81516b7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -0,0 +1,110 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_batch") +public class Batch extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_number") + private Long batchNumber; + @TableField("batch_count") + private Long batchCount; + @TableField("contract_id") + private Long contractId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("task_id") + private Long taskId; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(Long batchNumber) { + this.batchNumber = batchNumber; + } + + public Long getBatchCount() { + return batchCount; + } + + public void setBatchCount(Long batchCount) { + this.batchCount = batchCount; + } + + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Batch{" + + "id=" + id + + ", batchNumber=" + batchNumber + + ", batchCount=" + batchCount + + ", contractId=" + contractId + + ", taskId=" + taskId + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java new file mode 100644 index 0000000..893a1ed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -0,0 +1,186 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_contract") +public class Contract extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("contract_number") + private String contractNumber; + @TableField("contract_name") + private String contractName; + @TableField("contract_content") + private String contractContent; + @TableField("contract_amount") + private String contractAmount; + @TableField("external_project_apply") + private String externalProjectApply; + @TableField("external_contract_apply") + private String externalContractApply; + @TableField("principal") + private String principal; + @TableField("external_check_apply") + private String externalCheckApply; + @TableField("contract_factory") + private String contractFactory; + @TableField("createtime") + private Date createtime; + @TableField(exist = false) + private String paymentStatus; + @TableField(exist = false) + private String netFlow; + @TableField("deptid") + private String deptid; + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getContractName() { + return contractName; + } + + public void setContractName(String contractName) { + this.contractName = contractName; + } + + public String getContractContent() { + return contractContent; + } + + public void setContractContent(String contractContent) { + this.contractContent = contractContent; + } + + public String getContractAmount() { + return contractAmount; + } + + public void setContractAmount(String contractAmount) { + this.contractAmount = contractAmount; + } + + public String getExternalProjectApply() { + return externalProjectApply; + } + + public void setExternalProjectApply(String externalProjectApply) { + this.externalProjectApply = externalProjectApply; + } + + public String getExternalContractApply() { + return externalContractApply; + } + + public void setExternalContractApply(String externalContractApply) { + this.externalContractApply = externalContractApply; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalCheckApply() { + return externalCheckApply; + } + + public void setExternalCheckApply(String externalCheckApply) { + this.externalCheckApply = externalCheckApply; + } + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public String getContractFactory() { + return contractFactory; + } + + public void setContractFactory(String contractFactory) { + this.contractFactory = contractFactory; + } + + public String getNetFlow() { + return netFlow; + } + + public void setNetFlow(String netFlow) { + this.netFlow = netFlow; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Contract{" + + "contractNumber=" + contractNumber + + ", contractName=" + contractName + + ", contractContent=" + contractContent + + ", contractAmount=" + contractAmount + + ", externalProjectApply=" + externalProjectApply + + ", externalContractApply=" + externalContractApply + + ", principal=" + principal + + ", id=" + id + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java new file mode 100644 index 0000000..8718d91 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -0,0 +1,150 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_device") +public class Device extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_id") + private Long batchId; + private String devcode; + @TableField("devtype_id") + private Long devtypeId; + @TableField("is_send") + private String isSend; + private String longitude; + private String latitude; + @TableField("install_height") + private String installHeight; + private String iccid; + private Long imei; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public Long getImei() { + return imei; + } + + public void setImei(Long imei) { + this.imei = imei; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Device{" + + "id=" + id + + ", batchId=" + batchId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", isSend=" + isSend + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", installHeight=" + installHeight + + ", iccid=" + iccid + + ", imei=" + imei + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java new file mode 100644 index 0000000..870c36f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_payments") +public class Payments extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @TableField("paytime") + private Date paytime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getPaytime() { + return paytime; + } + + public void setPaytime(Date paytime) { + this.paytime = paytime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Payments{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", paytime=" + paytime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java new file mode 100644 index 0000000..ae6b585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -0,0 +1,285 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_device_type") +public class ProductDeviceType extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 产品名称 + */ + @TableField("product_name") + private String productName; + /** + * 产品型号 + */ + @TableField("product_model") + private String productModel; + + /** + * 通讯版本号 + */ + @TableField("communication_version") + private String communicationVersion; + + /** + * 产品类型 + */ + @TableField("product_type") + private String productType; + + /** + * 整机版本号 + */ + @TableField("machine_version") + private String machineVersion; + /** + * 硬件版本号 + */ + @TableField("hardware_version") + private String hardwareVersion; + /** + * 软件版本号 + */ + @TableField("software_version") + private String softwareVersion; + /** + * 设计归档 + */ + @TableField("design_archive") + private String designArchive; + /** + * 批产归档 + */ + @TableField("batch_filing") + private String batchFiling; + /** + * 状态 + */ + @TableField("status") + private Integer status; + /** + * 性能指标 + */ + @TableField("kpi") + private String kpi; + /** + * 批产负责人 + */ + @TableField("principal") + private String principal; + /** + * 定额汇总表 + */ + @TableField("quota_summary") + private String quotaSummary; + + /** + * 权属部门 + */ + @TableField("deptid") + private String deptid; + + /** + * 备注 + */ + @TableField("descn") + private String descn; + + @TableField("createtime") + private Date createtime; + + + @TableField(exist = false) + private String statusFmt; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } + + public String getMachineVersion() { + return machineVersion; + } + + public void setMachineVersion(String machineVersion) { + this.machineVersion = machineVersion; + } + + public String getHardwareVersion() { + return hardwareVersion; + } + + public void setHardwareVersion(String hardwareVersion) { + this.hardwareVersion = hardwareVersion; + } + + public String getSoftwareVersion() { + return softwareVersion; + } + + public void setSoftwareVersion(String softwareVersion) { + this.softwareVersion = softwareVersion; + } + + public String getDesignArchive() { + return designArchive; + } + + public void setDesignArchive(String designArchive) { + this.designArchive = designArchive; + } + + public String getBatchFiling() { + return batchFiling; + } + + public void setBatchFiling(String batchFiling) { + this.batchFiling = batchFiling; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getKpi() { + return kpi; + } + + public void setKpi(String kpi) { + this.kpi = kpi; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public String getQuotaSummary() { + return quotaSummary; + } + + public void setQuotaSummary(String quotaSummary) { + this.quotaSummary = quotaSummary; + } + + public String getStatusFmt() { + return statusFmt; + } + + public void setStatusFmt(String statusFmt) { + this.statusFmt = statusFmt; + } + + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getProductType() { + return productType; + } + + public void setProductType(String productType) { + this.productType = productType; + } + + public String getCommunicationVersion() { + return communicationVersion; + } + + public void setCommunicationVersion(String communicationVersion) { + this.communicationVersion = communicationVersion; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductDeviceType{" + + "id=" + id + + ", productName=" + productName + + ", productModel=" + productModel + + ", machineVersion=" + machineVersion + + ", hardwareVersion=" + hardwareVersion + + ", softwareVersion=" + softwareVersion + + ", designArchive=" + designArchive + + ", batchFiling=" + batchFiling + + ", status=" + status + + ", kpi=" + kpi + + ", principal=" + principal + + ", quotaSummary=" + quotaSummary + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java new file mode 100644 index 0000000..b0fd924 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java @@ -0,0 +1,187 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_factory_information") +public class ProductFactoryInformation extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 厂家名称 + */ + @TableField("name") + private String name; + /** + * 厂家联系人 + */ + @TableField("person_name") + private String personName; + /** + * 地址 + */ + @TableField("address") + private String address; + /** + * 电话 + */ + @TableField("phone") + private String phone; + /** + * 开户行 + */ + @TableField("bank") + private String bank; + /** + * 税号 + */ + @TableField("tax_number") + private String taxNumber; + /** + * 在产设备 + */ + @TableField("producting_device") + private String productingDevice; + /** + * 设备报价表 + */ + @TableField("equipment_quotation") + private String equipmentQuotation; + + @TableField("createtime") + private Date createtime =new Date(); + + @TableField("deptid") + private String deptid; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPersonName() { + return personName; + } + + public void setPersonName(String personName) { + this.personName = personName; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getBank() { + return bank; + } + + public void setBank(String bank) { + this.bank = bank; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getProductingDevice() { + return productingDevice; + } + + public void setProductingDevice(String productingDevice) { + this.productingDevice = productingDevice; + } + + public String getEquipmentQuotation() { + return equipmentQuotation; + } + + public void setEquipmentQuotation(String equipmentQuotation) { + this.equipmentQuotation = equipmentQuotation; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductFactoryInformation{" + + "id=" + id + + ", name=" + name + + ", personName=" + personName + + ", address=" + address + + ", phone=" + phone + + ", bank=" + bank + + ", taxNumber=" + taxNumber + + ", productingDevice=" + productingDevice + + ", equipmentQuotation=" + equipmentQuotation + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java new file mode 100644 index 0000000..00cbc92 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -0,0 +1,99 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@TableName("product_project") +public class Project extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_name") + private String projectName; + @TableField("project_simple_name") + private String projectSimpleName; + @TableField("project_manager") + private String projectManager; + private String descn; + @TableField("createtime") + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getProjectManager() { + return projectManager; + } + + public void setProjectManager(String projectManager) { + this.projectManager = projectManager; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Project{" + + "id=" + id + + ", projectName=" + projectName + + ", projectSimpleName=" + projectSimpleName + + ", projectManager=" + projectManager + + ", descn=" + descn + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java new file mode 100644 index 0000000..658c2e1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java @@ -0,0 +1,126 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_reimburse") +public class Reimburse extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mi:ss") + @TableField("reimburse_time") + private Date reimburseTime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getReimburseTime() { + return reimburseTime; + } + + public void setReimburseTime(Date reimburseTime) { + this.reimburseTime = reimburseTime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Reimburse{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", reimburseTime=" + reimburseTime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java new file mode 100644 index 0000000..987efa7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java @@ -0,0 +1,141 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_task") +public class Task extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_id") + private Long projectId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("devmode_id") + private String devmodeId; + private Long devcount; + @TableField("delivery_time") + private Date deliveryTime; + private String demand; + private Date createtime; + @TableField(exist = false) + private String deliveryTimeFmt; + + @TableField(exist = false) + private Long taskId; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getProjectId() { + return projectId; + } + + public void setProjectId(Long projectId) { + this.projectId = projectId; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDevmodeId() { + return devmodeId; + } + + public void setDevmodeId(String devmodeId) { + this.devmodeId = devmodeId; + } + + public Long getDevcount() { + return devcount; + } + + public void setDevcount(Long devcount) { + this.devcount = devcount; + } + + public Date getDeliveryTime() { + return deliveryTime; + } + + public void setDeliveryTime(Date deliveryTime) { + this.deliveryTime = deliveryTime; + } + + public String getDemand() { + return demand; + } + + public void setDemand(String demand) { + this.demand = demand; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeliveryTimeFmt() { + return deliveryTimeFmt; + } + + public void setDeliveryTimeFmt(String deliveryTimeFmt) { + this.deliveryTimeFmt = deliveryTimeFmt; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Task{" + + "id=" + id + + ", projectId=" + projectId + + ", devtypeId=" + devtypeId + + ", devmodeId=" + devmodeId + + ", devcount=" + devcount + + ", deliveryTime=" + deliveryTime + + ", demand=" + demand + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java new file mode 100644 index 0000000..7785de5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface IAccountService extends IService { + + /** + * 根据用户名查用户 + * @param userName + * @return + */ + Account findUserByName(String userName); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java new file mode 100644 index 0000000..d8b5e87 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IContractService extends IService { + List selectPageList(Page page, String keyword1, String keyword2, String keyword3); + List reportExport(String keyword1, String keyword2, String keyword3); + void importContract( List contracts); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java new file mode 100644 index 0000000..0f2d6e0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IPaymentsService extends IService { + + boolean validate(Long proId,String money,String reorder); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java new file mode 100644 index 0000000..71490df --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -0,0 +1,62 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductDeviceTypeService extends IService { + + /** + * 批量导入设备类型列表 + * @param results + */ + void importDeviceType(List results); + + /** + * 导出列表 + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List reportExport(String keyword1,String keyword2,String keyword3); + + + /** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectPageDataScope(DataScope dataScope, Page page, + String keyword1, String keyword2, String keyword3); + + /** + * 获取在产的设备类型 + * @return + */ + List selectDeviceTypeList(); + + /** + * 根据产品型号获取产品 + * @param deviceModel + * @return + */ + ProductDeviceType selectDeviceTypeByModel(String deviceModel); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java new file mode 100644 index 0000000..455f60a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductFactoryInformationService extends IService { + /** + * 根据条件导出列表 + * @param keyword1 + * @param keyword2 + * @return + */ + List reportExport(String keyword1, String keyword2); + + + /** + * 导入 + * @param results + */ + void importDeviceType(List results); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java new file mode 100644 index 0000000..3c27bd1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface IProjectService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java new file mode 100644 index 0000000..ee0a55c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IReimburseService extends IService { + boolean validate(Long proId,String money,String reorder); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java new file mode 100644 index 0000000..09ce653 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.dao.AccountMapper; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.stereotype.Service; + +/** + *

+ * 管理员表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@Service +public class AccountServiceImpl extends ServiceImpl implements IAccountService { + + @Override + public Account findUserByName(String userName) { + + EntityWrapper userEntityWrapper = new EntityWrapper<>(); + userEntityWrapper.eq("name",userName); + userEntityWrapper.eq("status","1"); + return this.selectOne(userEntityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java new file mode 100644 index 0000000..dd04da0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java @@ -0,0 +1,138 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.shiro.ShiroUser; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ContractMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IPaymentsService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ContractServiceImpl extends ServiceImpl implements IContractService { + @Autowired + private IPaymentsService paymentsService; + @Autowired + private ICommonPermissionService permissionService; + @Autowired + private IAccountService userService; + @Value("${casic.producerName}") + private String producerName; + @Value("${casic.repairName}") + private String repairName; + + @Override + public List selectPageList(Page page, String keyword1, String keyword2, String keyword3) { + +// EntityWrapper query = new EntityWrapper<>(); +// if (ToolUtil.isNotEmpty(keyword1)) { +// query.like("contract_factory", keyword1); +// } +// if (ToolUtil.isNotEmpty(keyword3)) { +// query.like("contract_number", keyword3); +// } +// List contractList = this.selectPage(page, query).getRecords(); +// contractList.forEach(contract -> { +// contract.setPaymentStatus(getPaymentStatus(contract)); +// String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" +// + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" +// + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); +// contract.setNetFlow(netFlowStr); +// +// }); +// return contractList; + + + List contractList = new ArrayList<>(); + DataScope dataScope = permissionService.getCurrUserDataScope(); + ShiroUser currentUser = permissionService.getCurrLoginUser(); + if (currentUser.getRoleTips().contains(producerName) || currentUser.getRoleTips().contains(repairName)) { + contractList = this.baseMapper.findContractList(dataScope,page, currentUser.getName(), keyword1, keyword2, keyword3); + } else { + contractList = this.baseMapper.findContractList(dataScope,page, "", keyword1, keyword2, keyword3); + } + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + + }); + return contractList; + } + + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + + + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("contractFactory", keyword1); + } + if (ToolUtil.isNotEmpty(keyword3)) { + query.like("contract_number", keyword3); + } + + List contractList = this.selectList(query); + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); +// permissionService.findInDictByCode("applyStatus") + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + }); + + return contractList; + } + + @Override + public void importContract(List contracts) { + contracts.forEach(contract -> { + EntityWrapper query = new EntityWrapper<>(); + query.eq("contract_number", contract.getContractNumber()); + this.delete(query); + Account user = userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); + this.insert(contract); + }); + } + + public String getPaymentStatus(Contract contract) { + Map paraMap = new HashMap<>(); + paraMap.put("pro_id", contract.getId()); + List paymentsList = paymentsService.selectByMap(paraMap); + float sum = 0; + for (Payments payments : paymentsList) { + sum = sum + (ToolUtil.isNotEmpty(payments.getMoney()) ? Float.parseFloat(payments.getMoney()) : 0); + } + DecimalFormat df = new DecimalFormat("0"); + return sum + "," + df.format(100 * sum / Float.valueOf(contract.getContractAmount())) + "%"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java new file mode 100644 index 0000000..0c125d8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PaymentsMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class PaymentsServiceImpl extends ServiceImpl implements IPaymentsService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money,String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List paymentsList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Payments payments : paymentsList) { + if(reorder.equals(payments.getReorder())) continue; + total += ToolUtil.isNotEmpty(payments.getMoney()) ? + Long.valueOf(payments.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java new file mode 100644 index 0000000..ac6d447 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductDeviceTypeMapper; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.swing.text.html.parser.Entity; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductDeviceTypeServiceImpl extends ServiceImpl implements IProductDeviceTypeService { + + @Autowired + private ICommonPermissionService permissionService; + + @Transactional(rollbackFor = Exception.class) + @Override + public void importDeviceType(List results) { + + for (ProductDeviceType productDeviceType : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + this.baseMapper.delete(wrapper); + this.baseMapper.insert(productDeviceType); + } + } + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + wrapper.like("principal", keyword3); + } + List productDeviceTypes = this.selectList(wrapper); + for (ProductDeviceType productDeviceType : productDeviceTypes) { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + } + return productDeviceTypes; + } + + @Override + public List selectPageDataScope(DataScope dataScope, Page page, String keyword1, String keyword2, String keyword3) { + + List productDeviceTypeList = this.baseMapper.selectDataScopePage(dataScope, page, keyword1, keyword2, keyword3); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + return productDeviceTypeList; + + } + + @Override + public List selectDeviceTypeList() { + return this.baseMapper.selectDeviceTypeList(); + } + + + @Override + public ProductDeviceType selectDeviceTypeByModel(String deviceModel) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("product_model",deviceModel); + return this.selectOne(entityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java new file mode 100644 index 0000000..efe4410 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java @@ -0,0 +1,50 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductFactoryInformationMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductFactoryInformationServiceImpl extends ServiceImpl implements IProductFactoryInformationService { + + @Override + public List reportExport(String keyword1, String keyword2) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.like("producting_device", keyword2); + } + List productFactoryInformations = this.selectList(wrapper); + + return productFactoryInformations; + } + + + @Transactional(rollbackFor=Exception.class) + @Override + public void importDeviceType(List results) { + for (ProductFactoryInformation productFactoryInformation : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + delete(wrapper); + this.baseMapper.insert(productFactoryInformation); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java new file mode 100644 index 0000000..34655b0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.dao.ProjectMapper; +import com.casic.missiles.modular.system.service.IProjectService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@Service +public class ProjectServiceImpl extends ServiceImpl implements IProjectService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java new file mode 100644 index 0000000..5e8b77b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java @@ -0,0 +1,48 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.dao.ReimburseMapper; +import com.casic.missiles.modular.system.service.IReimburseService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ReimburseServiceImpl extends ServiceImpl implements IReimburseService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money, String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List reimburseList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Reimburse reimburse : reimburseList) { + if (reorder.equals(reimburse.getReorder())) continue; + total += ToolUtil.isNotEmpty(reimburse.getMoney()) ? + Long.valueOf(reimburse.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java new file mode 100644 index 0000000..d5ffadb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java @@ -0,0 +1,235 @@ +package com.casic.missiles.modular.system.util; + +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; + +import java.util.*; + +/** + * @author test203 + * @since 2020-04-06 + */ +public class DeviceUtil { + private final static String factoryCode = "20"; + private final static String wellExcludeCode = "4120"; + private final static String loraDevice = "A"; + private static Map devTypeCountHashMap = new HashMap(); + + static { + devTypeCountHashMap.put("电子标识器", 99999L); + devTypeCountHashMap.put("井盖状态监测仪", 65534L); + devTypeCountHashMap.put("灯箱控制器", 65535L); + devTypeCountHashMap.put("单灯控制器(单路)", 65535L); + devTypeCountHashMap.put("单灯控制器(双路)", 65535L); + devTypeCountHashMap.put("数据集中器", 255L); + devTypeCountHashMap.put("有害气体监测仪", 999L); + } + + public static List createDevCodes(ProductDeviceType deviceType, List batches) { + List deviceList = new ArrayList<>(); + try { + if ("电子标识器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 年份XX 批次号XX 编号XXXXX + String devCode = deviceType.getProductType() + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%05d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("井盖状态监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + String wellCode4 = String.format("%04x", i); + if (wellExcludeCode.equals(wellCode4)) { + continue; + } + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + wellCode4; + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("灯箱控制器".equals(deviceType.getProductName()) || + "单灯控制器(单路)".equals(deviceType.getProductName()) || + "单灯控制器(双路)".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("数据集中器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("有害气体监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型WS2000X- 年份XX 批次序号XXXX 编号XXX + String devCode = deviceType.getProductType() + + getYearFmt() + + String.format("%04d", batch.getBatchNumber()) + + String.format("%03d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } + //其他设备类型分lora和非lora版本 + else { + if (loraDevice.equals(deviceType.getCommunicationVersion())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } else { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return deviceList; + } + + + public static Map validate(ProductDeviceType deviceType, List batches, Task task) { + Map resultMap = new HashMap<>(); + boolean success = true; + String msg = ""; + long devSum = null != task ? task.getDevcount() : 0; + long devcount = 0, batchCountMax; + batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? + 0 : devTypeCountHashMap.get(deviceType.getProductName()); + if (0 == batchCountMax) { + if (deviceType.getProductModel().indexOf(loraDevice) + == deviceType.getProductModel().length() - 1) { + batchCountMax = 255; + } else { + batchCountMax = 9999; + } + } + for (Batch batch : batches) { + if (batch.getBatchCount() > batchCountMax) { + success = false; + msg = batch.getBatchNumber() + "批次号数量超过了最大范围" + batchCountMax; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + devcount += batch.getBatchCount(); + } + if (devcount != devSum) { + return returnMsg(); + } + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + + public static Map returnMsg() { + Map resultMap = new HashMap<>(); + resultMap.put("success", false); + resultMap.put("msg", "所有批次数量之和与任务中设备数量不一致!"); + return resultMap; + } + + /** + * 获取编码中的年份 + * + * @return + */ + public static String getYearFmt() { + + return DateUtil.format(new Date(), "yyyy").substring(2); + } + + + /** + * 比较2个map + * + * @param batchMap + * @param batchMap1 + * @return + */ + public static boolean equalMap(Map batchMap, Map batchMap1) { + if (batchMap.size() != batchMap1.size()) { + return false; + } + Iterator iter1 = batchMap.keySet().iterator(); + while (iter1.hasNext()) { + Long map1key = iter1.next(); + String map1value = batchMap.get(map1key).toString(); + String map2value = batchMap1.get(map1key).toString(); + if (!map1value.equals(map2value)) { + return false; + } + } + return true; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java new file mode 100644 index 0000000..33c3535 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java @@ -0,0 +1,43 @@ +package com.casic.missiles.modular.system.util; + +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; + +public class FileUtil { + public static File createFile(String path) throws IOException { + File file = new File(path); + if (!file.exists()) { + file.getParentFile().mkdirs(); + file.createNewFile(); + } + return file; + } + + + public static void downloadLocalFile(HttpServletResponse response,String path, String fileName) throws IOException { + File file = new File(path); + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", "attachment; filename=\"" + URLEncoder.encode(fileName, "UTF-8") + "\""); + response.setContentLength((int) file.length()); + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java new file mode 100644 index 0000000..341d3d1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.task.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.task.service.IBatchService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 批次控制器 + * + * @author dev + * @Date 2020-03-27 15:29:55 + */ +@Controller +@RequestMapping("/batch") +public class BatchController extends BaseController { + + + @Autowired + private IBatchService batchService; + + + /** + * 获取批次列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return batchService.selectList(null); + } + + /** + * 获取批次分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = batchService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增批次并生成设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + @Transactional + public Object add(@RequestBody List batches, Task task) { + + return batchService.addBatchAndDevices(batches,task); + + } + + /** + * 删除批次 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String batchId) { + batchService.deleteById(batchId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("batchIds") List batchIds) { + batchService.deleteBatchIds(batchIds); + return ResponseData.success(); + } + + /** + * 修改批次 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Batch batch) { + batchService.updateById(batch); + return ResponseData.success(); + } + + + /** + * 根据设备类型id + * 查找批次号 + */ + @RequestMapping(value = "/getBatchNumber") + @ResponseBody + public Object getBatchNumber(Long devtypeId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.orderBy("id", false); + Batch batch = batchService.selectOne(entityWrapper); + return ResponseData.success(200, "", batch != null ? batch.getBatchNumber() + 1 : 1); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java new file mode 100644 index 0000000..f463168 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java @@ -0,0 +1,102 @@ +package com.casic.missiles.modular.task.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * 任务控制器 + * + * @author dev + * @Date 2020-03-27 15:28:26 + */ +@Controller +@RequestMapping("/task") +public class TaskController extends BaseController { + + + @Autowired + private ITaskService taskService; + + + /** + * 获取任务列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return taskService.selectList(null); + } + + /** + * 获取任务分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = taskService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增任务 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + taskService.insert(task); + return ResponseData.success(); + } + + /** + * 删除任务 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String taskId) { + taskService.deleteById(taskId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("taskIds") List taskIds) { + taskService.deleteBatchIds(taskIds); + return ResponseData.success(); + } + + /** + * 修改任务 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + taskService.updateById(task); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java new file mode 100644 index 0000000..04c7ef8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.task.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IBatchService extends IService { + + /** + * 添加批次和生成设备 + * @param batches + * @param task + * @return + */ + ResponseData addBatchAndDevices(List batches, Task task); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java new file mode 100644 index 0000000..50e1d37 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.task.service; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface ITaskService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java new file mode 100644 index 0000000..a435e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dao.BatchMapper; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.DeviceUtil; +import com.casic.missiles.modular.task.service.IBatchService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class BatchServiceImpl extends ServiceImpl implements IBatchService { + + @Autowired + private IProductDeviceTypeService deviceTypeService; + @Autowired + private IDeviceService deviceService; + + @Transactional(rollbackFor=Exception.class) + @Override + public ResponseData addBatchAndDevices(List batches, Task task) { + //提交前先验证是否已经存在,若存在且批次号或每批数量改变先删除 + try { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("task_id", task.getTaskId()); + List batchList = this.selectList(entityWrapper); + Map batchMap= new HashMap<>(); + Map batchMap1= new HashMap<>(); + List batchIdlist = new ArrayList<>(); + for (Batch batch : batches) { + batchMap.put(batch.getBatchNumber(),batch.getBatchCount()); + batch.setTaskId(task.getTaskId()); + batch.setDevtypeId(task.getDevtypeId()); + batchIdlist.add(batch.getId()); + } + for (Batch batch : batchList) { + batchMap1.put(batch.getBatchNumber(),batch.getBatchCount()); + } + + //若批次号和数量不变只更新批次表 + if (DeviceUtil.equalMap(batchMap, batchMap1)) { + this.insertOrUpdateBatch(batches); + } + //若批次号和数量更新,更新设备表(删除批次相关的设备后,写入新的设备) + else { + + //验证设备数量是否合格 + ProductDeviceType deviceType = deviceTypeService.selectDeviceTypeByModel(task.getDevmodeId()); + Map resultMap = DeviceUtil.validate(deviceType, batches, task); + if (!Boolean.valueOf(resultMap.get("success").toString())) { + return ResponseData.error(400, resultMap.get("msg").toString()); + } + //删除批次 + EntityWrapper batchEntityWrapper = new EntityWrapper<>(); + batchEntityWrapper.eq("task_id", task.getTaskId()); + this.delete(batchEntityWrapper); + //删除设备 + EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); + deviceEntityWrapper.in("batch_id", batchIdlist); + deviceEntityWrapper.eq("devtype_id",task.getDevtypeId()); + deviceService.delete(deviceEntityWrapper); + + //写入批次 + this.insertBatch(batches); + //写入设备 + List deviceList = DeviceUtil.createDevCodes(deviceType, batches); + deviceService.insertBatch(deviceList); + } + } catch (Exception e) { + e.printStackTrace(); + } + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java new file mode 100644 index 0000000..fac60bb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.dao.TaskMapper; +import com.casic.missiles.modular.task.service.ITaskService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class TaskServiceImpl extends ServiceImpl implements ITaskService { + +} diff --git a/casic-web/pom.xml b/casic-web/pom.xml new file mode 100644 index 0000000..f9f1c84 --- /dev/null +++ b/casic-web/pom.xml @@ -0,0 +1,300 @@ + + + 4.0.0 + + com.casic + casic-product-device + ../pom.xml + 1.0.0-SNAPSHOT + + casic-web + ${pro.version} + jar + casic-web + casic web启动入口 + + + + dev + + true + + + dev + true + 3600 + 3600 + + + + + test + + test + false + 180 + 180 + + + + + prod + + prod + true + 3600 + 3600 + + + + + + + + + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-admin-core + ${casic.version} + + + com.casic + casic-admin-area + ${casic.version} + + + + + + + + + + com.casic + casic-device + ${pro.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-cache + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + org.springframework.boot + spring-boot-devtools + true + + + + + + org.apache.shiro + shiro-core + + + slf4j-api + org.slf4j + + + + + org.apache.shiro + shiro-spring + + + org.apache.shiro + shiro-ehcache + + + slf4j-api + org.slf4j + + + + + org.ehcache + ehcache + ${ehcache.version} + + + + commons-io + commons-io + + + com.github.penggle + kaptcha + + + com.google.zxing + core + + + com.ibeetl + beetl + + + org.apache.commons + commons-lang3 + + + com.oracle + ojdbc6 + ${oracle.version} + + + org.codehaus.groovy + groovy-all + true + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + org.apache.maven.plugins + maven-jar-plugin + + + + /config/** + **/MockController.class + + + + + + + + + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + maven-assembly-plugin + + + false + + src/main/build/package.xml + + + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-resources-plugin + 2.6 + + + ${resource.delimiter} + + true + + + + copy-resources + validate + + copy-resources + + + ${project.build.outputDirectory} + + + + src/main/resources + true + + + + + + + + + + src/main/webapp + + + src/main/resources + + + src/main/java + + **/*.xml + + true + + + + + diff --git "a/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" "b/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" new file mode 100644 index 0000000..9656df2 --- /dev/null +++ "b/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" @@ -0,0 +1,4 @@ +@echo off +title 智慧城管 +java -jar guns-web-1.0.0-SNAPSHOT.jar +@pause diff --git a/casic-web/src/main/build/package.xml b/casic-web/src/main/build/package.xml new file mode 100644 index 0000000..68b7576 --- /dev/null +++ b/casic-web/src/main/build/package.xml @@ -0,0 +1,26 @@ + + + package + + zip + + true + + + src/main/bin + / + + + src/main/resources/config + / + + + ${project.build.directory} + / + + *.jar + + + + + \ No newline at end of file diff --git a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java new file mode 100644 index 0000000..0b0c3fb --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java @@ -0,0 +1,35 @@ +package com.casic.missiles; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * SpringBoot方式启动类 + * + * @author casic + * @Date 2017/5/21 12:06 + */ +@SpringBootApplication +@ServletComponentScan +@EnableTransactionManagement(proxyTargetClass = true) +public class CasicApplication { + + private static final Logger logger = LoggerFactory.getLogger(CasicApplication.class); + + public static void main(String[] args){ + SpringApplication.run(CasicApplication.class, args); + logger.info("GunsApplication is success!"); + + } + +} + + + + + + diff --git a/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java new file mode 100644 index 0000000..269025c --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java @@ -0,0 +1,18 @@ +package com.casic.missiles; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.support.SpringBootServletInitializer; + +/** + * Guns Web程序启动类 + * + * @author fengshuonan + * @date 2017-05-21 9:43 + */ +public class CasicServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(CasicApplication.class); + } +} diff --git a/casic-web/src/main/java/com/casic/missiles/controller/MockController.java b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java new file mode 100644 index 0000000..a8285e8 --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java @@ -0,0 +1,83 @@ +package com.casic.missiles.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.log.LogManager; +import com.casic.missiles.core.log.factory.LogTaskFactory; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.core.shiro.ShiroUser; +import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.contant.PermissionContant; +import com.casic.missiles.modular.system.dto.LoginResult; +import org.apache.commons.lang3.StringUtils; +import org.apache.shiro.authc.UsernamePasswordToken; +import org.apache.shiro.subject.Subject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.servlet.http.HttpServletRequest; +import java.security.NoSuchAlgorithmException; +import java.util.Map; + +import static com.casic.missiles.core.support.HttpKit.getIp; + +/** + * 仅为mock登录使用 + */ +@Controller +@RequestMapping("/route") +public class MockController extends BaseController { + private static final Logger logger = LoggerFactory.getLogger(MockController.class); + + /** + * 获取mockToken + */ + @GetMapping("/mockToken") + @ResponseBody + public Object subdepts(HttpServletRequest request, String username, String password) { + ShiroKit.getSession().setAttribute(PermissionContant.IS_APP, false); + SuccessResponseData resultData = new SuccessResponseData(); + if (ToolUtil.isOneEmpty(username, password)) { + username = "admin"; + password = "1111111a"; + } + Subject currentUser = ShiroKit.getSubject(); + + try { + Map key = RSAUtils.genKeyPair(); + ShiroKit.getSession().setAttribute(PermissionContant.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey)); + logger.info("秘钥:".concat(key.get(RSAUtils.RSAPublicKey))); + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + + + UsernamePasswordToken token = new UsernamePasswordToken(username, password.toCharArray()); + token.setRememberMe(false); + try { + currentUser.login(token); + } catch (Exception e) { + e.printStackTrace(); + } + ShiroUser shiroUser = ShiroKit.getUser(); + super.getSession().setAttribute("shiroUser", shiroUser); + super.getSession().setAttribute("username", shiroUser.getAccount()); + + super.getSession().setAttribute(PermissionContant.SESSION_KEY, shiroUser.getId()); + + LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp())); + + ShiroKit.getSession().setAttribute("sessionFlag", true); + resultData.setData(new LoginResult(ShiroKit.getSession().getId().toString(), null)); + resultData.setMessage("登录成功"); + return resultData; + } + +} diff --git a/casic-web/src/main/resources/application.yml b/casic-web/src/main/resources/application.yml new file mode 100644 index 0000000..70cc33b --- /dev/null +++ b/casic-web/src/main/resources/application.yml @@ -0,0 +1,18 @@ +########################################################## +################## 所有profile共有的配置 ################# +########################################################## +spring: + profiles: + active: @activatedProperties@ + datasource: + driver-class-name: com.mysql.jdbc.Driver + jms: + pub-sub-domain: true + aop: + proxy-target-class: true #false为启用jdk默认动态代理,true为cglib动态代理 +################### mybatis-plus配置 ################### +################### guns配置 ################### +casic: + kaptcha-open: true #是否开启登录时验证码 (true/false) + file-upload-path: d:/tmp #文件上传目录(不配置的话为java.io.tmpdir目录) + nologin-urls: /user/login,/kaptcha,/config/baseConfig \ No newline at end of file diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml new file mode 100644 index 0000000..99216e3 --- /dev/null +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -0,0 +1,24 @@ +server: + port: 8083 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://139.198.17.115:3000/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: root + initial-size: 2 + min-idle: 1 +#flowable数据源和多数据源配置 +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /user/login,/user/appLogin,/kaptcha,/config/baseConfig,/route/mockToken,/process/processDiagram,/enterprise2/list,/enterprise2/report,/enterprise3/list,enterprise3/report + file-upload-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\upload\ + file-download-path: D:\tmp\ + producerName: producer + repairName: repair +logging: + level.root: info + level.com.casic: debug + path: logs/ + file: missiles.log + diff --git a/casic-web/src/main/resources/config/application-prod.yml b/casic-web/src/main/resources/config/application-prod.yml new file mode 100644 index 0000000..d54ce16 --- /dev/null +++ b/casic-web/src/main/resources/config/application-prod.yml @@ -0,0 +1,20 @@ +server: + port: 8093 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://139.198.17.115:3000/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: root + initial-size: 2 + min-idle: 1 +#flowable数据源和多数据源配置 +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /user/login,/user/appLogin,/kaptcha,/config/baseConfig,/route/mockToken,/process/processDiagram + file-upload-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\upload +logging: + level.root: info + level.com.casic: debug + path: logs/ + file: missiles.log \ No newline at end of file diff --git a/casic-web/src/main/resources/config/application-test.yml b/casic-web/src/main/resources/config/application-test.yml new file mode 100644 index 0000000..40ec8f5 --- /dev/null +++ b/casic-web/src/main/resources/config/application-test.yml @@ -0,0 +1,21 @@ +server: + port: 8093 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://139.198.17.115:3000/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: root + initial-size: 2 + min-idle: 1 +#flowable数据源和多数据源配置 +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /user/login,/user/appLogin,/kaptcha,/config/baseConfig,/route/mockToken,/process/processDiagram + file-upload-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\upload +logging: + level.root: info + level.com.casic: debug + path: logs/ + file: missiles.log + diff --git a/casic-web/src/main/resources/ehcache.xml b/casic-web/src/main/resources/ehcache.xml new file mode 100644 index 0000000..78c82d8 --- /dev/null +++ b/casic-web/src/main/resources/ehcache.xml @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + diff --git a/casic-web/src/main/resources/excel/contractImp.xlsx b/casic-web/src/main/resources/excel/contractImp.xlsx new file mode 100644 index 0000000..71e3f4a --- /dev/null +++ b/casic-web/src/main/resources/excel/contractImp.xlsx Binary files differ diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java new file mode 100644 index 0000000..4670df3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 集中器相关日志 + */ +public class ProjectDict extends AbstractDictMap { + public static final String PROJECT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + @Override + public void init() { + put("projectName","项目名称"); + put("projectSimpleName","项目简称"); + put("projectManager","项目经理"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java new file mode 100644 index 0000000..7981a17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dto; + +/** + * 用于设备类型展示 + * @author test203 + * @date 2020-04-03 + */ +public class DeviceTypeDto { + private Long id; + private String productName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java new file mode 100644 index 0000000..f254585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java @@ -0,0 +1,361 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.math.BigDecimal; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; + +/** + *

+ * 管理员表 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@TableName("sys_user") +public class Account extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + /** + * 头像 + */ + private String avatar; + /** + * 账号 + */ + private String account; + /** + * 密码 + */ + private String password; + /** + * md5密码盐 + */ + private String salt; + /** + * 名字 + */ + private String name; + /** + * 生日 + */ + private Date birthday; + /** + * 性别(1:男 2:女) + */ + private String sex; + /** + * 电子邮件 + */ + private String email; + /** + * 电话 + */ + private String phone; + /** + * 角色id + */ + private String roleid; + /** + * 部门id + */ + private Long deptid; + /** + * 状态(1:启用 2:冻结 3:删除) + */ + private String status; + /** + * 创建时间 + */ + private Date createtime; + /** + * 保留字段 + */ + private Integer version; + private String targetid; + private String targetname; + @TableField("password_sync") + private String passwordSync; + @TableField("IS_SYNC") + private Integer isSync; + private String simplename; + /** + * 同步组织ID + */ + @TableField("TARGET_DEPTID_SYNC") + private String targetDeptidSync; + @TableField("LOGIN_IP") + private String loginIp; + @TableField("LOGIN_MAC") + private String loginMac; + /** + * 最后在线时间 + */ + @TableField("LAST_TIME") + private Date lastTime; + /** + * 经度 + */ + @TableField("POSITION_LNG") + private BigDecimal positionLng; + /** + * 纬度 + */ + @TableField("POSITION_LAT") + private BigDecimal positionLat; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt() { + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getRoleid() { + return roleid; + } + + public void setRoleid(String roleid) { + this.roleid = roleid; + } + + public Long getDeptid() { + return deptid; + } + + public void setDeptid(Long deptid) { + this.deptid = deptid; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + public String getTargetid() { + return targetid; + } + + public void setTargetid(String targetid) { + this.targetid = targetid; + } + + public String getTargetname() { + return targetname; + } + + public void setTargetname(String targetname) { + this.targetname = targetname; + } + + public String getPasswordSync() { + return passwordSync; + } + + public void setPasswordSync(String passwordSync) { + this.passwordSync = passwordSync; + } + + public Integer getIsSync() { + return isSync; + } + + public void setIsSync(Integer isSync) { + this.isSync = isSync; + } + + public String getSimplename() { + return simplename; + } + + public void setSimplename(String simplename) { + this.simplename = simplename; + } + + public String getTargetDeptidSync() { + return targetDeptidSync; + } + + public void setTargetDeptidSync(String targetDeptidSync) { + this.targetDeptidSync = targetDeptidSync; + } + + public String getLoginIp() { + return loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getLoginMac() { + return loginMac; + } + + public void setLoginMac(String loginMac) { + this.loginMac = loginMac; + } + + public Date getLastTime() { + return lastTime; + } + + public void setLastTime(Date lastTime) { + this.lastTime = lastTime; + } + + public BigDecimal getPositionLng() { + return positionLng; + } + + public void setPositionLng(BigDecimal positionLng) { + this.positionLng = positionLng; + } + + public BigDecimal getPositionLat() { + return positionLat; + } + + public void setPositionLat(BigDecimal positionLat) { + this.positionLat = positionLat; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", avatar=" + avatar + + ", account=" + account + + ", password=" + password + + ", salt=" + salt + + ", name=" + name + + ", birthday=" + birthday + + ", sex=" + sex + + ", email=" + email + + ", phone=" + phone + + ", roleid=" + roleid + + ", deptid=" + deptid + + ", status=" + status + + ", createtime=" + createtime + + ", version=" + version + + ", targetid=" + targetid + + ", targetname=" + targetname + + ", passwordSync=" + passwordSync + + ", isSync=" + isSync + + ", simplename=" + simplename + + ", targetDeptidSync=" + targetDeptidSync + + ", loginIp=" + loginIp + + ", loginMac=" + loginMac + + ", lastTime=" + lastTime + + ", positionLng=" + positionLng + + ", positionLat=" + positionLat + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java new file mode 100644 index 0000000..81516b7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -0,0 +1,110 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_batch") +public class Batch extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_number") + private Long batchNumber; + @TableField("batch_count") + private Long batchCount; + @TableField("contract_id") + private Long contractId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("task_id") + private Long taskId; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(Long batchNumber) { + this.batchNumber = batchNumber; + } + + public Long getBatchCount() { + return batchCount; + } + + public void setBatchCount(Long batchCount) { + this.batchCount = batchCount; + } + + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Batch{" + + "id=" + id + + ", batchNumber=" + batchNumber + + ", batchCount=" + batchCount + + ", contractId=" + contractId + + ", taskId=" + taskId + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java new file mode 100644 index 0000000..893a1ed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -0,0 +1,186 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_contract") +public class Contract extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("contract_number") + private String contractNumber; + @TableField("contract_name") + private String contractName; + @TableField("contract_content") + private String contractContent; + @TableField("contract_amount") + private String contractAmount; + @TableField("external_project_apply") + private String externalProjectApply; + @TableField("external_contract_apply") + private String externalContractApply; + @TableField("principal") + private String principal; + @TableField("external_check_apply") + private String externalCheckApply; + @TableField("contract_factory") + private String contractFactory; + @TableField("createtime") + private Date createtime; + @TableField(exist = false) + private String paymentStatus; + @TableField(exist = false) + private String netFlow; + @TableField("deptid") + private String deptid; + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getContractName() { + return contractName; + } + + public void setContractName(String contractName) { + this.contractName = contractName; + } + + public String getContractContent() { + return contractContent; + } + + public void setContractContent(String contractContent) { + this.contractContent = contractContent; + } + + public String getContractAmount() { + return contractAmount; + } + + public void setContractAmount(String contractAmount) { + this.contractAmount = contractAmount; + } + + public String getExternalProjectApply() { + return externalProjectApply; + } + + public void setExternalProjectApply(String externalProjectApply) { + this.externalProjectApply = externalProjectApply; + } + + public String getExternalContractApply() { + return externalContractApply; + } + + public void setExternalContractApply(String externalContractApply) { + this.externalContractApply = externalContractApply; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalCheckApply() { + return externalCheckApply; + } + + public void setExternalCheckApply(String externalCheckApply) { + this.externalCheckApply = externalCheckApply; + } + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public String getContractFactory() { + return contractFactory; + } + + public void setContractFactory(String contractFactory) { + this.contractFactory = contractFactory; + } + + public String getNetFlow() { + return netFlow; + } + + public void setNetFlow(String netFlow) { + this.netFlow = netFlow; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Contract{" + + "contractNumber=" + contractNumber + + ", contractName=" + contractName + + ", contractContent=" + contractContent + + ", contractAmount=" + contractAmount + + ", externalProjectApply=" + externalProjectApply + + ", externalContractApply=" + externalContractApply + + ", principal=" + principal + + ", id=" + id + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java new file mode 100644 index 0000000..8718d91 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -0,0 +1,150 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_device") +public class Device extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_id") + private Long batchId; + private String devcode; + @TableField("devtype_id") + private Long devtypeId; + @TableField("is_send") + private String isSend; + private String longitude; + private String latitude; + @TableField("install_height") + private String installHeight; + private String iccid; + private Long imei; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public Long getImei() { + return imei; + } + + public void setImei(Long imei) { + this.imei = imei; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Device{" + + "id=" + id + + ", batchId=" + batchId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", isSend=" + isSend + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", installHeight=" + installHeight + + ", iccid=" + iccid + + ", imei=" + imei + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java new file mode 100644 index 0000000..870c36f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_payments") +public class Payments extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @TableField("paytime") + private Date paytime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getPaytime() { + return paytime; + } + + public void setPaytime(Date paytime) { + this.paytime = paytime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Payments{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", paytime=" + paytime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java new file mode 100644 index 0000000..ae6b585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -0,0 +1,285 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_device_type") +public class ProductDeviceType extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 产品名称 + */ + @TableField("product_name") + private String productName; + /** + * 产品型号 + */ + @TableField("product_model") + private String productModel; + + /** + * 通讯版本号 + */ + @TableField("communication_version") + private String communicationVersion; + + /** + * 产品类型 + */ + @TableField("product_type") + private String productType; + + /** + * 整机版本号 + */ + @TableField("machine_version") + private String machineVersion; + /** + * 硬件版本号 + */ + @TableField("hardware_version") + private String hardwareVersion; + /** + * 软件版本号 + */ + @TableField("software_version") + private String softwareVersion; + /** + * 设计归档 + */ + @TableField("design_archive") + private String designArchive; + /** + * 批产归档 + */ + @TableField("batch_filing") + private String batchFiling; + /** + * 状态 + */ + @TableField("status") + private Integer status; + /** + * 性能指标 + */ + @TableField("kpi") + private String kpi; + /** + * 批产负责人 + */ + @TableField("principal") + private String principal; + /** + * 定额汇总表 + */ + @TableField("quota_summary") + private String quotaSummary; + + /** + * 权属部门 + */ + @TableField("deptid") + private String deptid; + + /** + * 备注 + */ + @TableField("descn") + private String descn; + + @TableField("createtime") + private Date createtime; + + + @TableField(exist = false) + private String statusFmt; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } + + public String getMachineVersion() { + return machineVersion; + } + + public void setMachineVersion(String machineVersion) { + this.machineVersion = machineVersion; + } + + public String getHardwareVersion() { + return hardwareVersion; + } + + public void setHardwareVersion(String hardwareVersion) { + this.hardwareVersion = hardwareVersion; + } + + public String getSoftwareVersion() { + return softwareVersion; + } + + public void setSoftwareVersion(String softwareVersion) { + this.softwareVersion = softwareVersion; + } + + public String getDesignArchive() { + return designArchive; + } + + public void setDesignArchive(String designArchive) { + this.designArchive = designArchive; + } + + public String getBatchFiling() { + return batchFiling; + } + + public void setBatchFiling(String batchFiling) { + this.batchFiling = batchFiling; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getKpi() { + return kpi; + } + + public void setKpi(String kpi) { + this.kpi = kpi; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public String getQuotaSummary() { + return quotaSummary; + } + + public void setQuotaSummary(String quotaSummary) { + this.quotaSummary = quotaSummary; + } + + public String getStatusFmt() { + return statusFmt; + } + + public void setStatusFmt(String statusFmt) { + this.statusFmt = statusFmt; + } + + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getProductType() { + return productType; + } + + public void setProductType(String productType) { + this.productType = productType; + } + + public String getCommunicationVersion() { + return communicationVersion; + } + + public void setCommunicationVersion(String communicationVersion) { + this.communicationVersion = communicationVersion; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductDeviceType{" + + "id=" + id + + ", productName=" + productName + + ", productModel=" + productModel + + ", machineVersion=" + machineVersion + + ", hardwareVersion=" + hardwareVersion + + ", softwareVersion=" + softwareVersion + + ", designArchive=" + designArchive + + ", batchFiling=" + batchFiling + + ", status=" + status + + ", kpi=" + kpi + + ", principal=" + principal + + ", quotaSummary=" + quotaSummary + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java new file mode 100644 index 0000000..b0fd924 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java @@ -0,0 +1,187 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_factory_information") +public class ProductFactoryInformation extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 厂家名称 + */ + @TableField("name") + private String name; + /** + * 厂家联系人 + */ + @TableField("person_name") + private String personName; + /** + * 地址 + */ + @TableField("address") + private String address; + /** + * 电话 + */ + @TableField("phone") + private String phone; + /** + * 开户行 + */ + @TableField("bank") + private String bank; + /** + * 税号 + */ + @TableField("tax_number") + private String taxNumber; + /** + * 在产设备 + */ + @TableField("producting_device") + private String productingDevice; + /** + * 设备报价表 + */ + @TableField("equipment_quotation") + private String equipmentQuotation; + + @TableField("createtime") + private Date createtime =new Date(); + + @TableField("deptid") + private String deptid; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPersonName() { + return personName; + } + + public void setPersonName(String personName) { + this.personName = personName; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getBank() { + return bank; + } + + public void setBank(String bank) { + this.bank = bank; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getProductingDevice() { + return productingDevice; + } + + public void setProductingDevice(String productingDevice) { + this.productingDevice = productingDevice; + } + + public String getEquipmentQuotation() { + return equipmentQuotation; + } + + public void setEquipmentQuotation(String equipmentQuotation) { + this.equipmentQuotation = equipmentQuotation; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductFactoryInformation{" + + "id=" + id + + ", name=" + name + + ", personName=" + personName + + ", address=" + address + + ", phone=" + phone + + ", bank=" + bank + + ", taxNumber=" + taxNumber + + ", productingDevice=" + productingDevice + + ", equipmentQuotation=" + equipmentQuotation + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java new file mode 100644 index 0000000..00cbc92 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -0,0 +1,99 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@TableName("product_project") +public class Project extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_name") + private String projectName; + @TableField("project_simple_name") + private String projectSimpleName; + @TableField("project_manager") + private String projectManager; + private String descn; + @TableField("createtime") + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getProjectManager() { + return projectManager; + } + + public void setProjectManager(String projectManager) { + this.projectManager = projectManager; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Project{" + + "id=" + id + + ", projectName=" + projectName + + ", projectSimpleName=" + projectSimpleName + + ", projectManager=" + projectManager + + ", descn=" + descn + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java new file mode 100644 index 0000000..658c2e1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java @@ -0,0 +1,126 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_reimburse") +public class Reimburse extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mi:ss") + @TableField("reimburse_time") + private Date reimburseTime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getReimburseTime() { + return reimburseTime; + } + + public void setReimburseTime(Date reimburseTime) { + this.reimburseTime = reimburseTime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Reimburse{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", reimburseTime=" + reimburseTime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java new file mode 100644 index 0000000..987efa7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java @@ -0,0 +1,141 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_task") +public class Task extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_id") + private Long projectId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("devmode_id") + private String devmodeId; + private Long devcount; + @TableField("delivery_time") + private Date deliveryTime; + private String demand; + private Date createtime; + @TableField(exist = false) + private String deliveryTimeFmt; + + @TableField(exist = false) + private Long taskId; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getProjectId() { + return projectId; + } + + public void setProjectId(Long projectId) { + this.projectId = projectId; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDevmodeId() { + return devmodeId; + } + + public void setDevmodeId(String devmodeId) { + this.devmodeId = devmodeId; + } + + public Long getDevcount() { + return devcount; + } + + public void setDevcount(Long devcount) { + this.devcount = devcount; + } + + public Date getDeliveryTime() { + return deliveryTime; + } + + public void setDeliveryTime(Date deliveryTime) { + this.deliveryTime = deliveryTime; + } + + public String getDemand() { + return demand; + } + + public void setDemand(String demand) { + this.demand = demand; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeliveryTimeFmt() { + return deliveryTimeFmt; + } + + public void setDeliveryTimeFmt(String deliveryTimeFmt) { + this.deliveryTimeFmt = deliveryTimeFmt; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Task{" + + "id=" + id + + ", projectId=" + projectId + + ", devtypeId=" + devtypeId + + ", devmodeId=" + devmodeId + + ", devcount=" + devcount + + ", deliveryTime=" + deliveryTime + + ", demand=" + demand + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java new file mode 100644 index 0000000..7785de5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface IAccountService extends IService { + + /** + * 根据用户名查用户 + * @param userName + * @return + */ + Account findUserByName(String userName); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java new file mode 100644 index 0000000..d8b5e87 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IContractService extends IService { + List selectPageList(Page page, String keyword1, String keyword2, String keyword3); + List reportExport(String keyword1, String keyword2, String keyword3); + void importContract( List contracts); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java new file mode 100644 index 0000000..0f2d6e0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IPaymentsService extends IService { + + boolean validate(Long proId,String money,String reorder); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java new file mode 100644 index 0000000..71490df --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -0,0 +1,62 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductDeviceTypeService extends IService { + + /** + * 批量导入设备类型列表 + * @param results + */ + void importDeviceType(List results); + + /** + * 导出列表 + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List reportExport(String keyword1,String keyword2,String keyword3); + + + /** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectPageDataScope(DataScope dataScope, Page page, + String keyword1, String keyword2, String keyword3); + + /** + * 获取在产的设备类型 + * @return + */ + List selectDeviceTypeList(); + + /** + * 根据产品型号获取产品 + * @param deviceModel + * @return + */ + ProductDeviceType selectDeviceTypeByModel(String deviceModel); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java new file mode 100644 index 0000000..455f60a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductFactoryInformationService extends IService { + /** + * 根据条件导出列表 + * @param keyword1 + * @param keyword2 + * @return + */ + List reportExport(String keyword1, String keyword2); + + + /** + * 导入 + * @param results + */ + void importDeviceType(List results); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java new file mode 100644 index 0000000..3c27bd1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface IProjectService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java new file mode 100644 index 0000000..ee0a55c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IReimburseService extends IService { + boolean validate(Long proId,String money,String reorder); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java new file mode 100644 index 0000000..09ce653 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.dao.AccountMapper; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.stereotype.Service; + +/** + *

+ * 管理员表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@Service +public class AccountServiceImpl extends ServiceImpl implements IAccountService { + + @Override + public Account findUserByName(String userName) { + + EntityWrapper userEntityWrapper = new EntityWrapper<>(); + userEntityWrapper.eq("name",userName); + userEntityWrapper.eq("status","1"); + return this.selectOne(userEntityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java new file mode 100644 index 0000000..dd04da0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java @@ -0,0 +1,138 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.shiro.ShiroUser; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ContractMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IPaymentsService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ContractServiceImpl extends ServiceImpl implements IContractService { + @Autowired + private IPaymentsService paymentsService; + @Autowired + private ICommonPermissionService permissionService; + @Autowired + private IAccountService userService; + @Value("${casic.producerName}") + private String producerName; + @Value("${casic.repairName}") + private String repairName; + + @Override + public List selectPageList(Page page, String keyword1, String keyword2, String keyword3) { + +// EntityWrapper query = new EntityWrapper<>(); +// if (ToolUtil.isNotEmpty(keyword1)) { +// query.like("contract_factory", keyword1); +// } +// if (ToolUtil.isNotEmpty(keyword3)) { +// query.like("contract_number", keyword3); +// } +// List contractList = this.selectPage(page, query).getRecords(); +// contractList.forEach(contract -> { +// contract.setPaymentStatus(getPaymentStatus(contract)); +// String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" +// + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" +// + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); +// contract.setNetFlow(netFlowStr); +// +// }); +// return contractList; + + + List contractList = new ArrayList<>(); + DataScope dataScope = permissionService.getCurrUserDataScope(); + ShiroUser currentUser = permissionService.getCurrLoginUser(); + if (currentUser.getRoleTips().contains(producerName) || currentUser.getRoleTips().contains(repairName)) { + contractList = this.baseMapper.findContractList(dataScope,page, currentUser.getName(), keyword1, keyword2, keyword3); + } else { + contractList = this.baseMapper.findContractList(dataScope,page, "", keyword1, keyword2, keyword3); + } + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + + }); + return contractList; + } + + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + + + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("contractFactory", keyword1); + } + if (ToolUtil.isNotEmpty(keyword3)) { + query.like("contract_number", keyword3); + } + + List contractList = this.selectList(query); + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); +// permissionService.findInDictByCode("applyStatus") + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + }); + + return contractList; + } + + @Override + public void importContract(List contracts) { + contracts.forEach(contract -> { + EntityWrapper query = new EntityWrapper<>(); + query.eq("contract_number", contract.getContractNumber()); + this.delete(query); + Account user = userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); + this.insert(contract); + }); + } + + public String getPaymentStatus(Contract contract) { + Map paraMap = new HashMap<>(); + paraMap.put("pro_id", contract.getId()); + List paymentsList = paymentsService.selectByMap(paraMap); + float sum = 0; + for (Payments payments : paymentsList) { + sum = sum + (ToolUtil.isNotEmpty(payments.getMoney()) ? Float.parseFloat(payments.getMoney()) : 0); + } + DecimalFormat df = new DecimalFormat("0"); + return sum + "," + df.format(100 * sum / Float.valueOf(contract.getContractAmount())) + "%"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java new file mode 100644 index 0000000..0c125d8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PaymentsMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class PaymentsServiceImpl extends ServiceImpl implements IPaymentsService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money,String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List paymentsList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Payments payments : paymentsList) { + if(reorder.equals(payments.getReorder())) continue; + total += ToolUtil.isNotEmpty(payments.getMoney()) ? + Long.valueOf(payments.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java new file mode 100644 index 0000000..ac6d447 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductDeviceTypeMapper; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.swing.text.html.parser.Entity; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductDeviceTypeServiceImpl extends ServiceImpl implements IProductDeviceTypeService { + + @Autowired + private ICommonPermissionService permissionService; + + @Transactional(rollbackFor = Exception.class) + @Override + public void importDeviceType(List results) { + + for (ProductDeviceType productDeviceType : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + this.baseMapper.delete(wrapper); + this.baseMapper.insert(productDeviceType); + } + } + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + wrapper.like("principal", keyword3); + } + List productDeviceTypes = this.selectList(wrapper); + for (ProductDeviceType productDeviceType : productDeviceTypes) { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + } + return productDeviceTypes; + } + + @Override + public List selectPageDataScope(DataScope dataScope, Page page, String keyword1, String keyword2, String keyword3) { + + List productDeviceTypeList = this.baseMapper.selectDataScopePage(dataScope, page, keyword1, keyword2, keyword3); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + return productDeviceTypeList; + + } + + @Override + public List selectDeviceTypeList() { + return this.baseMapper.selectDeviceTypeList(); + } + + + @Override + public ProductDeviceType selectDeviceTypeByModel(String deviceModel) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("product_model",deviceModel); + return this.selectOne(entityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java new file mode 100644 index 0000000..efe4410 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java @@ -0,0 +1,50 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductFactoryInformationMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductFactoryInformationServiceImpl extends ServiceImpl implements IProductFactoryInformationService { + + @Override + public List reportExport(String keyword1, String keyword2) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.like("producting_device", keyword2); + } + List productFactoryInformations = this.selectList(wrapper); + + return productFactoryInformations; + } + + + @Transactional(rollbackFor=Exception.class) + @Override + public void importDeviceType(List results) { + for (ProductFactoryInformation productFactoryInformation : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + delete(wrapper); + this.baseMapper.insert(productFactoryInformation); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java new file mode 100644 index 0000000..34655b0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.dao.ProjectMapper; +import com.casic.missiles.modular.system.service.IProjectService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@Service +public class ProjectServiceImpl extends ServiceImpl implements IProjectService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java new file mode 100644 index 0000000..5e8b77b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java @@ -0,0 +1,48 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.dao.ReimburseMapper; +import com.casic.missiles.modular.system.service.IReimburseService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ReimburseServiceImpl extends ServiceImpl implements IReimburseService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money, String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List reimburseList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Reimburse reimburse : reimburseList) { + if (reorder.equals(reimburse.getReorder())) continue; + total += ToolUtil.isNotEmpty(reimburse.getMoney()) ? + Long.valueOf(reimburse.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java new file mode 100644 index 0000000..d5ffadb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java @@ -0,0 +1,235 @@ +package com.casic.missiles.modular.system.util; + +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; + +import java.util.*; + +/** + * @author test203 + * @since 2020-04-06 + */ +public class DeviceUtil { + private final static String factoryCode = "20"; + private final static String wellExcludeCode = "4120"; + private final static String loraDevice = "A"; + private static Map devTypeCountHashMap = new HashMap(); + + static { + devTypeCountHashMap.put("电子标识器", 99999L); + devTypeCountHashMap.put("井盖状态监测仪", 65534L); + devTypeCountHashMap.put("灯箱控制器", 65535L); + devTypeCountHashMap.put("单灯控制器(单路)", 65535L); + devTypeCountHashMap.put("单灯控制器(双路)", 65535L); + devTypeCountHashMap.put("数据集中器", 255L); + devTypeCountHashMap.put("有害气体监测仪", 999L); + } + + public static List createDevCodes(ProductDeviceType deviceType, List batches) { + List deviceList = new ArrayList<>(); + try { + if ("电子标识器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 年份XX 批次号XX 编号XXXXX + String devCode = deviceType.getProductType() + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%05d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("井盖状态监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + String wellCode4 = String.format("%04x", i); + if (wellExcludeCode.equals(wellCode4)) { + continue; + } + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + wellCode4; + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("灯箱控制器".equals(deviceType.getProductName()) || + "单灯控制器(单路)".equals(deviceType.getProductName()) || + "单灯控制器(双路)".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("数据集中器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("有害气体监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型WS2000X- 年份XX 批次序号XXXX 编号XXX + String devCode = deviceType.getProductType() + + getYearFmt() + + String.format("%04d", batch.getBatchNumber()) + + String.format("%03d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } + //其他设备类型分lora和非lora版本 + else { + if (loraDevice.equals(deviceType.getCommunicationVersion())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } else { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return deviceList; + } + + + public static Map validate(ProductDeviceType deviceType, List batches, Task task) { + Map resultMap = new HashMap<>(); + boolean success = true; + String msg = ""; + long devSum = null != task ? task.getDevcount() : 0; + long devcount = 0, batchCountMax; + batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? + 0 : devTypeCountHashMap.get(deviceType.getProductName()); + if (0 == batchCountMax) { + if (deviceType.getProductModel().indexOf(loraDevice) + == deviceType.getProductModel().length() - 1) { + batchCountMax = 255; + } else { + batchCountMax = 9999; + } + } + for (Batch batch : batches) { + if (batch.getBatchCount() > batchCountMax) { + success = false; + msg = batch.getBatchNumber() + "批次号数量超过了最大范围" + batchCountMax; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + devcount += batch.getBatchCount(); + } + if (devcount != devSum) { + return returnMsg(); + } + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + + public static Map returnMsg() { + Map resultMap = new HashMap<>(); + resultMap.put("success", false); + resultMap.put("msg", "所有批次数量之和与任务中设备数量不一致!"); + return resultMap; + } + + /** + * 获取编码中的年份 + * + * @return + */ + public static String getYearFmt() { + + return DateUtil.format(new Date(), "yyyy").substring(2); + } + + + /** + * 比较2个map + * + * @param batchMap + * @param batchMap1 + * @return + */ + public static boolean equalMap(Map batchMap, Map batchMap1) { + if (batchMap.size() != batchMap1.size()) { + return false; + } + Iterator iter1 = batchMap.keySet().iterator(); + while (iter1.hasNext()) { + Long map1key = iter1.next(); + String map1value = batchMap.get(map1key).toString(); + String map2value = batchMap1.get(map1key).toString(); + if (!map1value.equals(map2value)) { + return false; + } + } + return true; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java new file mode 100644 index 0000000..33c3535 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java @@ -0,0 +1,43 @@ +package com.casic.missiles.modular.system.util; + +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; + +public class FileUtil { + public static File createFile(String path) throws IOException { + File file = new File(path); + if (!file.exists()) { + file.getParentFile().mkdirs(); + file.createNewFile(); + } + return file; + } + + + public static void downloadLocalFile(HttpServletResponse response,String path, String fileName) throws IOException { + File file = new File(path); + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", "attachment; filename=\"" + URLEncoder.encode(fileName, "UTF-8") + "\""); + response.setContentLength((int) file.length()); + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java new file mode 100644 index 0000000..341d3d1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.task.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.task.service.IBatchService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 批次控制器 + * + * @author dev + * @Date 2020-03-27 15:29:55 + */ +@Controller +@RequestMapping("/batch") +public class BatchController extends BaseController { + + + @Autowired + private IBatchService batchService; + + + /** + * 获取批次列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return batchService.selectList(null); + } + + /** + * 获取批次分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = batchService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增批次并生成设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + @Transactional + public Object add(@RequestBody List batches, Task task) { + + return batchService.addBatchAndDevices(batches,task); + + } + + /** + * 删除批次 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String batchId) { + batchService.deleteById(batchId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("batchIds") List batchIds) { + batchService.deleteBatchIds(batchIds); + return ResponseData.success(); + } + + /** + * 修改批次 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Batch batch) { + batchService.updateById(batch); + return ResponseData.success(); + } + + + /** + * 根据设备类型id + * 查找批次号 + */ + @RequestMapping(value = "/getBatchNumber") + @ResponseBody + public Object getBatchNumber(Long devtypeId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.orderBy("id", false); + Batch batch = batchService.selectOne(entityWrapper); + return ResponseData.success(200, "", batch != null ? batch.getBatchNumber() + 1 : 1); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java new file mode 100644 index 0000000..f463168 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java @@ -0,0 +1,102 @@ +package com.casic.missiles.modular.task.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * 任务控制器 + * + * @author dev + * @Date 2020-03-27 15:28:26 + */ +@Controller +@RequestMapping("/task") +public class TaskController extends BaseController { + + + @Autowired + private ITaskService taskService; + + + /** + * 获取任务列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return taskService.selectList(null); + } + + /** + * 获取任务分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = taskService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增任务 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + taskService.insert(task); + return ResponseData.success(); + } + + /** + * 删除任务 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String taskId) { + taskService.deleteById(taskId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("taskIds") List taskIds) { + taskService.deleteBatchIds(taskIds); + return ResponseData.success(); + } + + /** + * 修改任务 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + taskService.updateById(task); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java new file mode 100644 index 0000000..04c7ef8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.task.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IBatchService extends IService { + + /** + * 添加批次和生成设备 + * @param batches + * @param task + * @return + */ + ResponseData addBatchAndDevices(List batches, Task task); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java new file mode 100644 index 0000000..50e1d37 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.task.service; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface ITaskService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java new file mode 100644 index 0000000..a435e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dao.BatchMapper; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.DeviceUtil; +import com.casic.missiles.modular.task.service.IBatchService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class BatchServiceImpl extends ServiceImpl implements IBatchService { + + @Autowired + private IProductDeviceTypeService deviceTypeService; + @Autowired + private IDeviceService deviceService; + + @Transactional(rollbackFor=Exception.class) + @Override + public ResponseData addBatchAndDevices(List batches, Task task) { + //提交前先验证是否已经存在,若存在且批次号或每批数量改变先删除 + try { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("task_id", task.getTaskId()); + List batchList = this.selectList(entityWrapper); + Map batchMap= new HashMap<>(); + Map batchMap1= new HashMap<>(); + List batchIdlist = new ArrayList<>(); + for (Batch batch : batches) { + batchMap.put(batch.getBatchNumber(),batch.getBatchCount()); + batch.setTaskId(task.getTaskId()); + batch.setDevtypeId(task.getDevtypeId()); + batchIdlist.add(batch.getId()); + } + for (Batch batch : batchList) { + batchMap1.put(batch.getBatchNumber(),batch.getBatchCount()); + } + + //若批次号和数量不变只更新批次表 + if (DeviceUtil.equalMap(batchMap, batchMap1)) { + this.insertOrUpdateBatch(batches); + } + //若批次号和数量更新,更新设备表(删除批次相关的设备后,写入新的设备) + else { + + //验证设备数量是否合格 + ProductDeviceType deviceType = deviceTypeService.selectDeviceTypeByModel(task.getDevmodeId()); + Map resultMap = DeviceUtil.validate(deviceType, batches, task); + if (!Boolean.valueOf(resultMap.get("success").toString())) { + return ResponseData.error(400, resultMap.get("msg").toString()); + } + //删除批次 + EntityWrapper batchEntityWrapper = new EntityWrapper<>(); + batchEntityWrapper.eq("task_id", task.getTaskId()); + this.delete(batchEntityWrapper); + //删除设备 + EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); + deviceEntityWrapper.in("batch_id", batchIdlist); + deviceEntityWrapper.eq("devtype_id",task.getDevtypeId()); + deviceService.delete(deviceEntityWrapper); + + //写入批次 + this.insertBatch(batches); + //写入设备 + List deviceList = DeviceUtil.createDevCodes(deviceType, batches); + deviceService.insertBatch(deviceList); + } + } catch (Exception e) { + e.printStackTrace(); + } + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java new file mode 100644 index 0000000..fac60bb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.dao.TaskMapper; +import com.casic.missiles.modular.task.service.ITaskService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class TaskServiceImpl extends ServiceImpl implements ITaskService { + +} diff --git a/casic-web/pom.xml b/casic-web/pom.xml new file mode 100644 index 0000000..f9f1c84 --- /dev/null +++ b/casic-web/pom.xml @@ -0,0 +1,300 @@ + + + 4.0.0 + + com.casic + casic-product-device + ../pom.xml + 1.0.0-SNAPSHOT + + casic-web + ${pro.version} + jar + casic-web + casic web启动入口 + + + + dev + + true + + + dev + true + 3600 + 3600 + + + + + test + + test + false + 180 + 180 + + + + + prod + + prod + true + 3600 + 3600 + + + + + + + + + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-admin-core + ${casic.version} + + + com.casic + casic-admin-area + ${casic.version} + + + + + + + + + + com.casic + casic-device + ${pro.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-cache + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + org.springframework.boot + spring-boot-devtools + true + + + + + + org.apache.shiro + shiro-core + + + slf4j-api + org.slf4j + + + + + org.apache.shiro + shiro-spring + + + org.apache.shiro + shiro-ehcache + + + slf4j-api + org.slf4j + + + + + org.ehcache + ehcache + ${ehcache.version} + + + + commons-io + commons-io + + + com.github.penggle + kaptcha + + + com.google.zxing + core + + + com.ibeetl + beetl + + + org.apache.commons + commons-lang3 + + + com.oracle + ojdbc6 + ${oracle.version} + + + org.codehaus.groovy + groovy-all + true + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + org.apache.maven.plugins + maven-jar-plugin + + + + /config/** + **/MockController.class + + + + + + + + + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + maven-assembly-plugin + + + false + + src/main/build/package.xml + + + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-resources-plugin + 2.6 + + + ${resource.delimiter} + + true + + + + copy-resources + validate + + copy-resources + + + ${project.build.outputDirectory} + + + + src/main/resources + true + + + + + + + + + + src/main/webapp + + + src/main/resources + + + src/main/java + + **/*.xml + + true + + + + + diff --git "a/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" "b/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" new file mode 100644 index 0000000..9656df2 --- /dev/null +++ "b/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" @@ -0,0 +1,4 @@ +@echo off +title 智慧城管 +java -jar guns-web-1.0.0-SNAPSHOT.jar +@pause diff --git a/casic-web/src/main/build/package.xml b/casic-web/src/main/build/package.xml new file mode 100644 index 0000000..68b7576 --- /dev/null +++ b/casic-web/src/main/build/package.xml @@ -0,0 +1,26 @@ + + + package + + zip + + true + + + src/main/bin + / + + + src/main/resources/config + / + + + ${project.build.directory} + / + + *.jar + + + + + \ No newline at end of file diff --git a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java new file mode 100644 index 0000000..0b0c3fb --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java @@ -0,0 +1,35 @@ +package com.casic.missiles; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * SpringBoot方式启动类 + * + * @author casic + * @Date 2017/5/21 12:06 + */ +@SpringBootApplication +@ServletComponentScan +@EnableTransactionManagement(proxyTargetClass = true) +public class CasicApplication { + + private static final Logger logger = LoggerFactory.getLogger(CasicApplication.class); + + public static void main(String[] args){ + SpringApplication.run(CasicApplication.class, args); + logger.info("GunsApplication is success!"); + + } + +} + + + + + + diff --git a/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java new file mode 100644 index 0000000..269025c --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java @@ -0,0 +1,18 @@ +package com.casic.missiles; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.support.SpringBootServletInitializer; + +/** + * Guns Web程序启动类 + * + * @author fengshuonan + * @date 2017-05-21 9:43 + */ +public class CasicServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(CasicApplication.class); + } +} diff --git a/casic-web/src/main/java/com/casic/missiles/controller/MockController.java b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java new file mode 100644 index 0000000..a8285e8 --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java @@ -0,0 +1,83 @@ +package com.casic.missiles.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.log.LogManager; +import com.casic.missiles.core.log.factory.LogTaskFactory; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.core.shiro.ShiroUser; +import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.contant.PermissionContant; +import com.casic.missiles.modular.system.dto.LoginResult; +import org.apache.commons.lang3.StringUtils; +import org.apache.shiro.authc.UsernamePasswordToken; +import org.apache.shiro.subject.Subject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.servlet.http.HttpServletRequest; +import java.security.NoSuchAlgorithmException; +import java.util.Map; + +import static com.casic.missiles.core.support.HttpKit.getIp; + +/** + * 仅为mock登录使用 + */ +@Controller +@RequestMapping("/route") +public class MockController extends BaseController { + private static final Logger logger = LoggerFactory.getLogger(MockController.class); + + /** + * 获取mockToken + */ + @GetMapping("/mockToken") + @ResponseBody + public Object subdepts(HttpServletRequest request, String username, String password) { + ShiroKit.getSession().setAttribute(PermissionContant.IS_APP, false); + SuccessResponseData resultData = new SuccessResponseData(); + if (ToolUtil.isOneEmpty(username, password)) { + username = "admin"; + password = "1111111a"; + } + Subject currentUser = ShiroKit.getSubject(); + + try { + Map key = RSAUtils.genKeyPair(); + ShiroKit.getSession().setAttribute(PermissionContant.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey)); + logger.info("秘钥:".concat(key.get(RSAUtils.RSAPublicKey))); + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + + + UsernamePasswordToken token = new UsernamePasswordToken(username, password.toCharArray()); + token.setRememberMe(false); + try { + currentUser.login(token); + } catch (Exception e) { + e.printStackTrace(); + } + ShiroUser shiroUser = ShiroKit.getUser(); + super.getSession().setAttribute("shiroUser", shiroUser); + super.getSession().setAttribute("username", shiroUser.getAccount()); + + super.getSession().setAttribute(PermissionContant.SESSION_KEY, shiroUser.getId()); + + LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp())); + + ShiroKit.getSession().setAttribute("sessionFlag", true); + resultData.setData(new LoginResult(ShiroKit.getSession().getId().toString(), null)); + resultData.setMessage("登录成功"); + return resultData; + } + +} diff --git a/casic-web/src/main/resources/application.yml b/casic-web/src/main/resources/application.yml new file mode 100644 index 0000000..70cc33b --- /dev/null +++ b/casic-web/src/main/resources/application.yml @@ -0,0 +1,18 @@ +########################################################## +################## 所有profile共有的配置 ################# +########################################################## +spring: + profiles: + active: @activatedProperties@ + datasource: + driver-class-name: com.mysql.jdbc.Driver + jms: + pub-sub-domain: true + aop: + proxy-target-class: true #false为启用jdk默认动态代理,true为cglib动态代理 +################### mybatis-plus配置 ################### +################### guns配置 ################### +casic: + kaptcha-open: true #是否开启登录时验证码 (true/false) + file-upload-path: d:/tmp #文件上传目录(不配置的话为java.io.tmpdir目录) + nologin-urls: /user/login,/kaptcha,/config/baseConfig \ No newline at end of file diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml new file mode 100644 index 0000000..99216e3 --- /dev/null +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -0,0 +1,24 @@ +server: + port: 8083 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://139.198.17.115:3000/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: root + initial-size: 2 + min-idle: 1 +#flowable数据源和多数据源配置 +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /user/login,/user/appLogin,/kaptcha,/config/baseConfig,/route/mockToken,/process/processDiagram,/enterprise2/list,/enterprise2/report,/enterprise3/list,enterprise3/report + file-upload-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\upload\ + file-download-path: D:\tmp\ + producerName: producer + repairName: repair +logging: + level.root: info + level.com.casic: debug + path: logs/ + file: missiles.log + diff --git a/casic-web/src/main/resources/config/application-prod.yml b/casic-web/src/main/resources/config/application-prod.yml new file mode 100644 index 0000000..d54ce16 --- /dev/null +++ b/casic-web/src/main/resources/config/application-prod.yml @@ -0,0 +1,20 @@ +server: + port: 8093 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://139.198.17.115:3000/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: root + initial-size: 2 + min-idle: 1 +#flowable数据源和多数据源配置 +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /user/login,/user/appLogin,/kaptcha,/config/baseConfig,/route/mockToken,/process/processDiagram + file-upload-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\upload +logging: + level.root: info + level.com.casic: debug + path: logs/ + file: missiles.log \ No newline at end of file diff --git a/casic-web/src/main/resources/config/application-test.yml b/casic-web/src/main/resources/config/application-test.yml new file mode 100644 index 0000000..40ec8f5 --- /dev/null +++ b/casic-web/src/main/resources/config/application-test.yml @@ -0,0 +1,21 @@ +server: + port: 8093 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://139.198.17.115:3000/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: root + initial-size: 2 + min-idle: 1 +#flowable数据源和多数据源配置 +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /user/login,/user/appLogin,/kaptcha,/config/baseConfig,/route/mockToken,/process/processDiagram + file-upload-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\upload +logging: + level.root: info + level.com.casic: debug + path: logs/ + file: missiles.log + diff --git a/casic-web/src/main/resources/ehcache.xml b/casic-web/src/main/resources/ehcache.xml new file mode 100644 index 0000000..78c82d8 --- /dev/null +++ b/casic-web/src/main/resources/ehcache.xml @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + diff --git a/casic-web/src/main/resources/excel/contractImp.xlsx b/casic-web/src/main/resources/excel/contractImp.xlsx new file mode 100644 index 0000000..71e3f4a --- /dev/null +++ b/casic-web/src/main/resources/excel/contractImp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/contractList.xlsx b/casic-web/src/main/resources/excel/contractList.xlsx new file mode 100644 index 0000000..19dda44 --- /dev/null +++ b/casic-web/src/main/resources/excel/contractList.xlsx Binary files differ diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java new file mode 100644 index 0000000..4670df3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 集中器相关日志 + */ +public class ProjectDict extends AbstractDictMap { + public static final String PROJECT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + @Override + public void init() { + put("projectName","项目名称"); + put("projectSimpleName","项目简称"); + put("projectManager","项目经理"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java new file mode 100644 index 0000000..7981a17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dto; + +/** + * 用于设备类型展示 + * @author test203 + * @date 2020-04-03 + */ +public class DeviceTypeDto { + private Long id; + private String productName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java new file mode 100644 index 0000000..f254585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java @@ -0,0 +1,361 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.math.BigDecimal; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; + +/** + *

+ * 管理员表 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@TableName("sys_user") +public class Account extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + /** + * 头像 + */ + private String avatar; + /** + * 账号 + */ + private String account; + /** + * 密码 + */ + private String password; + /** + * md5密码盐 + */ + private String salt; + /** + * 名字 + */ + private String name; + /** + * 生日 + */ + private Date birthday; + /** + * 性别(1:男 2:女) + */ + private String sex; + /** + * 电子邮件 + */ + private String email; + /** + * 电话 + */ + private String phone; + /** + * 角色id + */ + private String roleid; + /** + * 部门id + */ + private Long deptid; + /** + * 状态(1:启用 2:冻结 3:删除) + */ + private String status; + /** + * 创建时间 + */ + private Date createtime; + /** + * 保留字段 + */ + private Integer version; + private String targetid; + private String targetname; + @TableField("password_sync") + private String passwordSync; + @TableField("IS_SYNC") + private Integer isSync; + private String simplename; + /** + * 同步组织ID + */ + @TableField("TARGET_DEPTID_SYNC") + private String targetDeptidSync; + @TableField("LOGIN_IP") + private String loginIp; + @TableField("LOGIN_MAC") + private String loginMac; + /** + * 最后在线时间 + */ + @TableField("LAST_TIME") + private Date lastTime; + /** + * 经度 + */ + @TableField("POSITION_LNG") + private BigDecimal positionLng; + /** + * 纬度 + */ + @TableField("POSITION_LAT") + private BigDecimal positionLat; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt() { + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getRoleid() { + return roleid; + } + + public void setRoleid(String roleid) { + this.roleid = roleid; + } + + public Long getDeptid() { + return deptid; + } + + public void setDeptid(Long deptid) { + this.deptid = deptid; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + public String getTargetid() { + return targetid; + } + + public void setTargetid(String targetid) { + this.targetid = targetid; + } + + public String getTargetname() { + return targetname; + } + + public void setTargetname(String targetname) { + this.targetname = targetname; + } + + public String getPasswordSync() { + return passwordSync; + } + + public void setPasswordSync(String passwordSync) { + this.passwordSync = passwordSync; + } + + public Integer getIsSync() { + return isSync; + } + + public void setIsSync(Integer isSync) { + this.isSync = isSync; + } + + public String getSimplename() { + return simplename; + } + + public void setSimplename(String simplename) { + this.simplename = simplename; + } + + public String getTargetDeptidSync() { + return targetDeptidSync; + } + + public void setTargetDeptidSync(String targetDeptidSync) { + this.targetDeptidSync = targetDeptidSync; + } + + public String getLoginIp() { + return loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getLoginMac() { + return loginMac; + } + + public void setLoginMac(String loginMac) { + this.loginMac = loginMac; + } + + public Date getLastTime() { + return lastTime; + } + + public void setLastTime(Date lastTime) { + this.lastTime = lastTime; + } + + public BigDecimal getPositionLng() { + return positionLng; + } + + public void setPositionLng(BigDecimal positionLng) { + this.positionLng = positionLng; + } + + public BigDecimal getPositionLat() { + return positionLat; + } + + public void setPositionLat(BigDecimal positionLat) { + this.positionLat = positionLat; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", avatar=" + avatar + + ", account=" + account + + ", password=" + password + + ", salt=" + salt + + ", name=" + name + + ", birthday=" + birthday + + ", sex=" + sex + + ", email=" + email + + ", phone=" + phone + + ", roleid=" + roleid + + ", deptid=" + deptid + + ", status=" + status + + ", createtime=" + createtime + + ", version=" + version + + ", targetid=" + targetid + + ", targetname=" + targetname + + ", passwordSync=" + passwordSync + + ", isSync=" + isSync + + ", simplename=" + simplename + + ", targetDeptidSync=" + targetDeptidSync + + ", loginIp=" + loginIp + + ", loginMac=" + loginMac + + ", lastTime=" + lastTime + + ", positionLng=" + positionLng + + ", positionLat=" + positionLat + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java new file mode 100644 index 0000000..81516b7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -0,0 +1,110 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_batch") +public class Batch extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_number") + private Long batchNumber; + @TableField("batch_count") + private Long batchCount; + @TableField("contract_id") + private Long contractId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("task_id") + private Long taskId; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(Long batchNumber) { + this.batchNumber = batchNumber; + } + + public Long getBatchCount() { + return batchCount; + } + + public void setBatchCount(Long batchCount) { + this.batchCount = batchCount; + } + + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Batch{" + + "id=" + id + + ", batchNumber=" + batchNumber + + ", batchCount=" + batchCount + + ", contractId=" + contractId + + ", taskId=" + taskId + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java new file mode 100644 index 0000000..893a1ed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -0,0 +1,186 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_contract") +public class Contract extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("contract_number") + private String contractNumber; + @TableField("contract_name") + private String contractName; + @TableField("contract_content") + private String contractContent; + @TableField("contract_amount") + private String contractAmount; + @TableField("external_project_apply") + private String externalProjectApply; + @TableField("external_contract_apply") + private String externalContractApply; + @TableField("principal") + private String principal; + @TableField("external_check_apply") + private String externalCheckApply; + @TableField("contract_factory") + private String contractFactory; + @TableField("createtime") + private Date createtime; + @TableField(exist = false) + private String paymentStatus; + @TableField(exist = false) + private String netFlow; + @TableField("deptid") + private String deptid; + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getContractName() { + return contractName; + } + + public void setContractName(String contractName) { + this.contractName = contractName; + } + + public String getContractContent() { + return contractContent; + } + + public void setContractContent(String contractContent) { + this.contractContent = contractContent; + } + + public String getContractAmount() { + return contractAmount; + } + + public void setContractAmount(String contractAmount) { + this.contractAmount = contractAmount; + } + + public String getExternalProjectApply() { + return externalProjectApply; + } + + public void setExternalProjectApply(String externalProjectApply) { + this.externalProjectApply = externalProjectApply; + } + + public String getExternalContractApply() { + return externalContractApply; + } + + public void setExternalContractApply(String externalContractApply) { + this.externalContractApply = externalContractApply; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalCheckApply() { + return externalCheckApply; + } + + public void setExternalCheckApply(String externalCheckApply) { + this.externalCheckApply = externalCheckApply; + } + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public String getContractFactory() { + return contractFactory; + } + + public void setContractFactory(String contractFactory) { + this.contractFactory = contractFactory; + } + + public String getNetFlow() { + return netFlow; + } + + public void setNetFlow(String netFlow) { + this.netFlow = netFlow; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Contract{" + + "contractNumber=" + contractNumber + + ", contractName=" + contractName + + ", contractContent=" + contractContent + + ", contractAmount=" + contractAmount + + ", externalProjectApply=" + externalProjectApply + + ", externalContractApply=" + externalContractApply + + ", principal=" + principal + + ", id=" + id + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java new file mode 100644 index 0000000..8718d91 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -0,0 +1,150 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_device") +public class Device extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_id") + private Long batchId; + private String devcode; + @TableField("devtype_id") + private Long devtypeId; + @TableField("is_send") + private String isSend; + private String longitude; + private String latitude; + @TableField("install_height") + private String installHeight; + private String iccid; + private Long imei; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public Long getImei() { + return imei; + } + + public void setImei(Long imei) { + this.imei = imei; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Device{" + + "id=" + id + + ", batchId=" + batchId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", isSend=" + isSend + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", installHeight=" + installHeight + + ", iccid=" + iccid + + ", imei=" + imei + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java new file mode 100644 index 0000000..870c36f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_payments") +public class Payments extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @TableField("paytime") + private Date paytime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getPaytime() { + return paytime; + } + + public void setPaytime(Date paytime) { + this.paytime = paytime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Payments{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", paytime=" + paytime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java new file mode 100644 index 0000000..ae6b585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -0,0 +1,285 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_device_type") +public class ProductDeviceType extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 产品名称 + */ + @TableField("product_name") + private String productName; + /** + * 产品型号 + */ + @TableField("product_model") + private String productModel; + + /** + * 通讯版本号 + */ + @TableField("communication_version") + private String communicationVersion; + + /** + * 产品类型 + */ + @TableField("product_type") + private String productType; + + /** + * 整机版本号 + */ + @TableField("machine_version") + private String machineVersion; + /** + * 硬件版本号 + */ + @TableField("hardware_version") + private String hardwareVersion; + /** + * 软件版本号 + */ + @TableField("software_version") + private String softwareVersion; + /** + * 设计归档 + */ + @TableField("design_archive") + private String designArchive; + /** + * 批产归档 + */ + @TableField("batch_filing") + private String batchFiling; + /** + * 状态 + */ + @TableField("status") + private Integer status; + /** + * 性能指标 + */ + @TableField("kpi") + private String kpi; + /** + * 批产负责人 + */ + @TableField("principal") + private String principal; + /** + * 定额汇总表 + */ + @TableField("quota_summary") + private String quotaSummary; + + /** + * 权属部门 + */ + @TableField("deptid") + private String deptid; + + /** + * 备注 + */ + @TableField("descn") + private String descn; + + @TableField("createtime") + private Date createtime; + + + @TableField(exist = false) + private String statusFmt; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } + + public String getMachineVersion() { + return machineVersion; + } + + public void setMachineVersion(String machineVersion) { + this.machineVersion = machineVersion; + } + + public String getHardwareVersion() { + return hardwareVersion; + } + + public void setHardwareVersion(String hardwareVersion) { + this.hardwareVersion = hardwareVersion; + } + + public String getSoftwareVersion() { + return softwareVersion; + } + + public void setSoftwareVersion(String softwareVersion) { + this.softwareVersion = softwareVersion; + } + + public String getDesignArchive() { + return designArchive; + } + + public void setDesignArchive(String designArchive) { + this.designArchive = designArchive; + } + + public String getBatchFiling() { + return batchFiling; + } + + public void setBatchFiling(String batchFiling) { + this.batchFiling = batchFiling; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getKpi() { + return kpi; + } + + public void setKpi(String kpi) { + this.kpi = kpi; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public String getQuotaSummary() { + return quotaSummary; + } + + public void setQuotaSummary(String quotaSummary) { + this.quotaSummary = quotaSummary; + } + + public String getStatusFmt() { + return statusFmt; + } + + public void setStatusFmt(String statusFmt) { + this.statusFmt = statusFmt; + } + + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getProductType() { + return productType; + } + + public void setProductType(String productType) { + this.productType = productType; + } + + public String getCommunicationVersion() { + return communicationVersion; + } + + public void setCommunicationVersion(String communicationVersion) { + this.communicationVersion = communicationVersion; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductDeviceType{" + + "id=" + id + + ", productName=" + productName + + ", productModel=" + productModel + + ", machineVersion=" + machineVersion + + ", hardwareVersion=" + hardwareVersion + + ", softwareVersion=" + softwareVersion + + ", designArchive=" + designArchive + + ", batchFiling=" + batchFiling + + ", status=" + status + + ", kpi=" + kpi + + ", principal=" + principal + + ", quotaSummary=" + quotaSummary + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java new file mode 100644 index 0000000..b0fd924 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java @@ -0,0 +1,187 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_factory_information") +public class ProductFactoryInformation extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 厂家名称 + */ + @TableField("name") + private String name; + /** + * 厂家联系人 + */ + @TableField("person_name") + private String personName; + /** + * 地址 + */ + @TableField("address") + private String address; + /** + * 电话 + */ + @TableField("phone") + private String phone; + /** + * 开户行 + */ + @TableField("bank") + private String bank; + /** + * 税号 + */ + @TableField("tax_number") + private String taxNumber; + /** + * 在产设备 + */ + @TableField("producting_device") + private String productingDevice; + /** + * 设备报价表 + */ + @TableField("equipment_quotation") + private String equipmentQuotation; + + @TableField("createtime") + private Date createtime =new Date(); + + @TableField("deptid") + private String deptid; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPersonName() { + return personName; + } + + public void setPersonName(String personName) { + this.personName = personName; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getBank() { + return bank; + } + + public void setBank(String bank) { + this.bank = bank; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getProductingDevice() { + return productingDevice; + } + + public void setProductingDevice(String productingDevice) { + this.productingDevice = productingDevice; + } + + public String getEquipmentQuotation() { + return equipmentQuotation; + } + + public void setEquipmentQuotation(String equipmentQuotation) { + this.equipmentQuotation = equipmentQuotation; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductFactoryInformation{" + + "id=" + id + + ", name=" + name + + ", personName=" + personName + + ", address=" + address + + ", phone=" + phone + + ", bank=" + bank + + ", taxNumber=" + taxNumber + + ", productingDevice=" + productingDevice + + ", equipmentQuotation=" + equipmentQuotation + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java new file mode 100644 index 0000000..00cbc92 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -0,0 +1,99 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@TableName("product_project") +public class Project extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_name") + private String projectName; + @TableField("project_simple_name") + private String projectSimpleName; + @TableField("project_manager") + private String projectManager; + private String descn; + @TableField("createtime") + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getProjectManager() { + return projectManager; + } + + public void setProjectManager(String projectManager) { + this.projectManager = projectManager; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Project{" + + "id=" + id + + ", projectName=" + projectName + + ", projectSimpleName=" + projectSimpleName + + ", projectManager=" + projectManager + + ", descn=" + descn + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java new file mode 100644 index 0000000..658c2e1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java @@ -0,0 +1,126 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_reimburse") +public class Reimburse extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mi:ss") + @TableField("reimburse_time") + private Date reimburseTime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getReimburseTime() { + return reimburseTime; + } + + public void setReimburseTime(Date reimburseTime) { + this.reimburseTime = reimburseTime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Reimburse{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", reimburseTime=" + reimburseTime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java new file mode 100644 index 0000000..987efa7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java @@ -0,0 +1,141 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_task") +public class Task extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_id") + private Long projectId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("devmode_id") + private String devmodeId; + private Long devcount; + @TableField("delivery_time") + private Date deliveryTime; + private String demand; + private Date createtime; + @TableField(exist = false) + private String deliveryTimeFmt; + + @TableField(exist = false) + private Long taskId; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getProjectId() { + return projectId; + } + + public void setProjectId(Long projectId) { + this.projectId = projectId; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDevmodeId() { + return devmodeId; + } + + public void setDevmodeId(String devmodeId) { + this.devmodeId = devmodeId; + } + + public Long getDevcount() { + return devcount; + } + + public void setDevcount(Long devcount) { + this.devcount = devcount; + } + + public Date getDeliveryTime() { + return deliveryTime; + } + + public void setDeliveryTime(Date deliveryTime) { + this.deliveryTime = deliveryTime; + } + + public String getDemand() { + return demand; + } + + public void setDemand(String demand) { + this.demand = demand; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeliveryTimeFmt() { + return deliveryTimeFmt; + } + + public void setDeliveryTimeFmt(String deliveryTimeFmt) { + this.deliveryTimeFmt = deliveryTimeFmt; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Task{" + + "id=" + id + + ", projectId=" + projectId + + ", devtypeId=" + devtypeId + + ", devmodeId=" + devmodeId + + ", devcount=" + devcount + + ", deliveryTime=" + deliveryTime + + ", demand=" + demand + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java new file mode 100644 index 0000000..7785de5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface IAccountService extends IService { + + /** + * 根据用户名查用户 + * @param userName + * @return + */ + Account findUserByName(String userName); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java new file mode 100644 index 0000000..d8b5e87 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IContractService extends IService { + List selectPageList(Page page, String keyword1, String keyword2, String keyword3); + List reportExport(String keyword1, String keyword2, String keyword3); + void importContract( List contracts); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java new file mode 100644 index 0000000..0f2d6e0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IPaymentsService extends IService { + + boolean validate(Long proId,String money,String reorder); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java new file mode 100644 index 0000000..71490df --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -0,0 +1,62 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductDeviceTypeService extends IService { + + /** + * 批量导入设备类型列表 + * @param results + */ + void importDeviceType(List results); + + /** + * 导出列表 + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List reportExport(String keyword1,String keyword2,String keyword3); + + + /** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectPageDataScope(DataScope dataScope, Page page, + String keyword1, String keyword2, String keyword3); + + /** + * 获取在产的设备类型 + * @return + */ + List selectDeviceTypeList(); + + /** + * 根据产品型号获取产品 + * @param deviceModel + * @return + */ + ProductDeviceType selectDeviceTypeByModel(String deviceModel); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java new file mode 100644 index 0000000..455f60a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductFactoryInformationService extends IService { + /** + * 根据条件导出列表 + * @param keyword1 + * @param keyword2 + * @return + */ + List reportExport(String keyword1, String keyword2); + + + /** + * 导入 + * @param results + */ + void importDeviceType(List results); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java new file mode 100644 index 0000000..3c27bd1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface IProjectService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java new file mode 100644 index 0000000..ee0a55c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IReimburseService extends IService { + boolean validate(Long proId,String money,String reorder); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java new file mode 100644 index 0000000..09ce653 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.dao.AccountMapper; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.stereotype.Service; + +/** + *

+ * 管理员表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@Service +public class AccountServiceImpl extends ServiceImpl implements IAccountService { + + @Override + public Account findUserByName(String userName) { + + EntityWrapper userEntityWrapper = new EntityWrapper<>(); + userEntityWrapper.eq("name",userName); + userEntityWrapper.eq("status","1"); + return this.selectOne(userEntityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java new file mode 100644 index 0000000..dd04da0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java @@ -0,0 +1,138 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.shiro.ShiroUser; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ContractMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IPaymentsService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ContractServiceImpl extends ServiceImpl implements IContractService { + @Autowired + private IPaymentsService paymentsService; + @Autowired + private ICommonPermissionService permissionService; + @Autowired + private IAccountService userService; + @Value("${casic.producerName}") + private String producerName; + @Value("${casic.repairName}") + private String repairName; + + @Override + public List selectPageList(Page page, String keyword1, String keyword2, String keyword3) { + +// EntityWrapper query = new EntityWrapper<>(); +// if (ToolUtil.isNotEmpty(keyword1)) { +// query.like("contract_factory", keyword1); +// } +// if (ToolUtil.isNotEmpty(keyword3)) { +// query.like("contract_number", keyword3); +// } +// List contractList = this.selectPage(page, query).getRecords(); +// contractList.forEach(contract -> { +// contract.setPaymentStatus(getPaymentStatus(contract)); +// String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" +// + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" +// + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); +// contract.setNetFlow(netFlowStr); +// +// }); +// return contractList; + + + List contractList = new ArrayList<>(); + DataScope dataScope = permissionService.getCurrUserDataScope(); + ShiroUser currentUser = permissionService.getCurrLoginUser(); + if (currentUser.getRoleTips().contains(producerName) || currentUser.getRoleTips().contains(repairName)) { + contractList = this.baseMapper.findContractList(dataScope,page, currentUser.getName(), keyword1, keyword2, keyword3); + } else { + contractList = this.baseMapper.findContractList(dataScope,page, "", keyword1, keyword2, keyword3); + } + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + + }); + return contractList; + } + + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + + + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("contractFactory", keyword1); + } + if (ToolUtil.isNotEmpty(keyword3)) { + query.like("contract_number", keyword3); + } + + List contractList = this.selectList(query); + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); +// permissionService.findInDictByCode("applyStatus") + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + }); + + return contractList; + } + + @Override + public void importContract(List contracts) { + contracts.forEach(contract -> { + EntityWrapper query = new EntityWrapper<>(); + query.eq("contract_number", contract.getContractNumber()); + this.delete(query); + Account user = userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); + this.insert(contract); + }); + } + + public String getPaymentStatus(Contract contract) { + Map paraMap = new HashMap<>(); + paraMap.put("pro_id", contract.getId()); + List paymentsList = paymentsService.selectByMap(paraMap); + float sum = 0; + for (Payments payments : paymentsList) { + sum = sum + (ToolUtil.isNotEmpty(payments.getMoney()) ? Float.parseFloat(payments.getMoney()) : 0); + } + DecimalFormat df = new DecimalFormat("0"); + return sum + "," + df.format(100 * sum / Float.valueOf(contract.getContractAmount())) + "%"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java new file mode 100644 index 0000000..0c125d8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PaymentsMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class PaymentsServiceImpl extends ServiceImpl implements IPaymentsService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money,String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List paymentsList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Payments payments : paymentsList) { + if(reorder.equals(payments.getReorder())) continue; + total += ToolUtil.isNotEmpty(payments.getMoney()) ? + Long.valueOf(payments.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java new file mode 100644 index 0000000..ac6d447 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductDeviceTypeMapper; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.swing.text.html.parser.Entity; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductDeviceTypeServiceImpl extends ServiceImpl implements IProductDeviceTypeService { + + @Autowired + private ICommonPermissionService permissionService; + + @Transactional(rollbackFor = Exception.class) + @Override + public void importDeviceType(List results) { + + for (ProductDeviceType productDeviceType : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + this.baseMapper.delete(wrapper); + this.baseMapper.insert(productDeviceType); + } + } + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + wrapper.like("principal", keyword3); + } + List productDeviceTypes = this.selectList(wrapper); + for (ProductDeviceType productDeviceType : productDeviceTypes) { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + } + return productDeviceTypes; + } + + @Override + public List selectPageDataScope(DataScope dataScope, Page page, String keyword1, String keyword2, String keyword3) { + + List productDeviceTypeList = this.baseMapper.selectDataScopePage(dataScope, page, keyword1, keyword2, keyword3); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + return productDeviceTypeList; + + } + + @Override + public List selectDeviceTypeList() { + return this.baseMapper.selectDeviceTypeList(); + } + + + @Override + public ProductDeviceType selectDeviceTypeByModel(String deviceModel) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("product_model",deviceModel); + return this.selectOne(entityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java new file mode 100644 index 0000000..efe4410 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java @@ -0,0 +1,50 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductFactoryInformationMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductFactoryInformationServiceImpl extends ServiceImpl implements IProductFactoryInformationService { + + @Override + public List reportExport(String keyword1, String keyword2) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.like("producting_device", keyword2); + } + List productFactoryInformations = this.selectList(wrapper); + + return productFactoryInformations; + } + + + @Transactional(rollbackFor=Exception.class) + @Override + public void importDeviceType(List results) { + for (ProductFactoryInformation productFactoryInformation : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + delete(wrapper); + this.baseMapper.insert(productFactoryInformation); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java new file mode 100644 index 0000000..34655b0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.dao.ProjectMapper; +import com.casic.missiles.modular.system.service.IProjectService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@Service +public class ProjectServiceImpl extends ServiceImpl implements IProjectService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java new file mode 100644 index 0000000..5e8b77b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java @@ -0,0 +1,48 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.dao.ReimburseMapper; +import com.casic.missiles.modular.system.service.IReimburseService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ReimburseServiceImpl extends ServiceImpl implements IReimburseService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money, String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List reimburseList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Reimburse reimburse : reimburseList) { + if (reorder.equals(reimburse.getReorder())) continue; + total += ToolUtil.isNotEmpty(reimburse.getMoney()) ? + Long.valueOf(reimburse.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java new file mode 100644 index 0000000..d5ffadb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java @@ -0,0 +1,235 @@ +package com.casic.missiles.modular.system.util; + +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; + +import java.util.*; + +/** + * @author test203 + * @since 2020-04-06 + */ +public class DeviceUtil { + private final static String factoryCode = "20"; + private final static String wellExcludeCode = "4120"; + private final static String loraDevice = "A"; + private static Map devTypeCountHashMap = new HashMap(); + + static { + devTypeCountHashMap.put("电子标识器", 99999L); + devTypeCountHashMap.put("井盖状态监测仪", 65534L); + devTypeCountHashMap.put("灯箱控制器", 65535L); + devTypeCountHashMap.put("单灯控制器(单路)", 65535L); + devTypeCountHashMap.put("单灯控制器(双路)", 65535L); + devTypeCountHashMap.put("数据集中器", 255L); + devTypeCountHashMap.put("有害气体监测仪", 999L); + } + + public static List createDevCodes(ProductDeviceType deviceType, List batches) { + List deviceList = new ArrayList<>(); + try { + if ("电子标识器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 年份XX 批次号XX 编号XXXXX + String devCode = deviceType.getProductType() + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%05d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("井盖状态监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + String wellCode4 = String.format("%04x", i); + if (wellExcludeCode.equals(wellCode4)) { + continue; + } + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + wellCode4; + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("灯箱控制器".equals(deviceType.getProductName()) || + "单灯控制器(单路)".equals(deviceType.getProductName()) || + "单灯控制器(双路)".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("数据集中器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("有害气体监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型WS2000X- 年份XX 批次序号XXXX 编号XXX + String devCode = deviceType.getProductType() + + getYearFmt() + + String.format("%04d", batch.getBatchNumber()) + + String.format("%03d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } + //其他设备类型分lora和非lora版本 + else { + if (loraDevice.equals(deviceType.getCommunicationVersion())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } else { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return deviceList; + } + + + public static Map validate(ProductDeviceType deviceType, List batches, Task task) { + Map resultMap = new HashMap<>(); + boolean success = true; + String msg = ""; + long devSum = null != task ? task.getDevcount() : 0; + long devcount = 0, batchCountMax; + batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? + 0 : devTypeCountHashMap.get(deviceType.getProductName()); + if (0 == batchCountMax) { + if (deviceType.getProductModel().indexOf(loraDevice) + == deviceType.getProductModel().length() - 1) { + batchCountMax = 255; + } else { + batchCountMax = 9999; + } + } + for (Batch batch : batches) { + if (batch.getBatchCount() > batchCountMax) { + success = false; + msg = batch.getBatchNumber() + "批次号数量超过了最大范围" + batchCountMax; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + devcount += batch.getBatchCount(); + } + if (devcount != devSum) { + return returnMsg(); + } + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + + public static Map returnMsg() { + Map resultMap = new HashMap<>(); + resultMap.put("success", false); + resultMap.put("msg", "所有批次数量之和与任务中设备数量不一致!"); + return resultMap; + } + + /** + * 获取编码中的年份 + * + * @return + */ + public static String getYearFmt() { + + return DateUtil.format(new Date(), "yyyy").substring(2); + } + + + /** + * 比较2个map + * + * @param batchMap + * @param batchMap1 + * @return + */ + public static boolean equalMap(Map batchMap, Map batchMap1) { + if (batchMap.size() != batchMap1.size()) { + return false; + } + Iterator iter1 = batchMap.keySet().iterator(); + while (iter1.hasNext()) { + Long map1key = iter1.next(); + String map1value = batchMap.get(map1key).toString(); + String map2value = batchMap1.get(map1key).toString(); + if (!map1value.equals(map2value)) { + return false; + } + } + return true; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java new file mode 100644 index 0000000..33c3535 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java @@ -0,0 +1,43 @@ +package com.casic.missiles.modular.system.util; + +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; + +public class FileUtil { + public static File createFile(String path) throws IOException { + File file = new File(path); + if (!file.exists()) { + file.getParentFile().mkdirs(); + file.createNewFile(); + } + return file; + } + + + public static void downloadLocalFile(HttpServletResponse response,String path, String fileName) throws IOException { + File file = new File(path); + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", "attachment; filename=\"" + URLEncoder.encode(fileName, "UTF-8") + "\""); + response.setContentLength((int) file.length()); + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java new file mode 100644 index 0000000..341d3d1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.task.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.task.service.IBatchService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 批次控制器 + * + * @author dev + * @Date 2020-03-27 15:29:55 + */ +@Controller +@RequestMapping("/batch") +public class BatchController extends BaseController { + + + @Autowired + private IBatchService batchService; + + + /** + * 获取批次列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return batchService.selectList(null); + } + + /** + * 获取批次分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = batchService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增批次并生成设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + @Transactional + public Object add(@RequestBody List batches, Task task) { + + return batchService.addBatchAndDevices(batches,task); + + } + + /** + * 删除批次 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String batchId) { + batchService.deleteById(batchId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("batchIds") List batchIds) { + batchService.deleteBatchIds(batchIds); + return ResponseData.success(); + } + + /** + * 修改批次 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Batch batch) { + batchService.updateById(batch); + return ResponseData.success(); + } + + + /** + * 根据设备类型id + * 查找批次号 + */ + @RequestMapping(value = "/getBatchNumber") + @ResponseBody + public Object getBatchNumber(Long devtypeId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.orderBy("id", false); + Batch batch = batchService.selectOne(entityWrapper); + return ResponseData.success(200, "", batch != null ? batch.getBatchNumber() + 1 : 1); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java new file mode 100644 index 0000000..f463168 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java @@ -0,0 +1,102 @@ +package com.casic.missiles.modular.task.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * 任务控制器 + * + * @author dev + * @Date 2020-03-27 15:28:26 + */ +@Controller +@RequestMapping("/task") +public class TaskController extends BaseController { + + + @Autowired + private ITaskService taskService; + + + /** + * 获取任务列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return taskService.selectList(null); + } + + /** + * 获取任务分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = taskService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增任务 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + taskService.insert(task); + return ResponseData.success(); + } + + /** + * 删除任务 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String taskId) { + taskService.deleteById(taskId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("taskIds") List taskIds) { + taskService.deleteBatchIds(taskIds); + return ResponseData.success(); + } + + /** + * 修改任务 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + taskService.updateById(task); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java new file mode 100644 index 0000000..04c7ef8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.task.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IBatchService extends IService { + + /** + * 添加批次和生成设备 + * @param batches + * @param task + * @return + */ + ResponseData addBatchAndDevices(List batches, Task task); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java new file mode 100644 index 0000000..50e1d37 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.task.service; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface ITaskService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java new file mode 100644 index 0000000..a435e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dao.BatchMapper; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.DeviceUtil; +import com.casic.missiles.modular.task.service.IBatchService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class BatchServiceImpl extends ServiceImpl implements IBatchService { + + @Autowired + private IProductDeviceTypeService deviceTypeService; + @Autowired + private IDeviceService deviceService; + + @Transactional(rollbackFor=Exception.class) + @Override + public ResponseData addBatchAndDevices(List batches, Task task) { + //提交前先验证是否已经存在,若存在且批次号或每批数量改变先删除 + try { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("task_id", task.getTaskId()); + List batchList = this.selectList(entityWrapper); + Map batchMap= new HashMap<>(); + Map batchMap1= new HashMap<>(); + List batchIdlist = new ArrayList<>(); + for (Batch batch : batches) { + batchMap.put(batch.getBatchNumber(),batch.getBatchCount()); + batch.setTaskId(task.getTaskId()); + batch.setDevtypeId(task.getDevtypeId()); + batchIdlist.add(batch.getId()); + } + for (Batch batch : batchList) { + batchMap1.put(batch.getBatchNumber(),batch.getBatchCount()); + } + + //若批次号和数量不变只更新批次表 + if (DeviceUtil.equalMap(batchMap, batchMap1)) { + this.insertOrUpdateBatch(batches); + } + //若批次号和数量更新,更新设备表(删除批次相关的设备后,写入新的设备) + else { + + //验证设备数量是否合格 + ProductDeviceType deviceType = deviceTypeService.selectDeviceTypeByModel(task.getDevmodeId()); + Map resultMap = DeviceUtil.validate(deviceType, batches, task); + if (!Boolean.valueOf(resultMap.get("success").toString())) { + return ResponseData.error(400, resultMap.get("msg").toString()); + } + //删除批次 + EntityWrapper batchEntityWrapper = new EntityWrapper<>(); + batchEntityWrapper.eq("task_id", task.getTaskId()); + this.delete(batchEntityWrapper); + //删除设备 + EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); + deviceEntityWrapper.in("batch_id", batchIdlist); + deviceEntityWrapper.eq("devtype_id",task.getDevtypeId()); + deviceService.delete(deviceEntityWrapper); + + //写入批次 + this.insertBatch(batches); + //写入设备 + List deviceList = DeviceUtil.createDevCodes(deviceType, batches); + deviceService.insertBatch(deviceList); + } + } catch (Exception e) { + e.printStackTrace(); + } + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java new file mode 100644 index 0000000..fac60bb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.dao.TaskMapper; +import com.casic.missiles.modular.task.service.ITaskService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class TaskServiceImpl extends ServiceImpl implements ITaskService { + +} diff --git a/casic-web/pom.xml b/casic-web/pom.xml new file mode 100644 index 0000000..f9f1c84 --- /dev/null +++ b/casic-web/pom.xml @@ -0,0 +1,300 @@ + + + 4.0.0 + + com.casic + casic-product-device + ../pom.xml + 1.0.0-SNAPSHOT + + casic-web + ${pro.version} + jar + casic-web + casic web启动入口 + + + + dev + + true + + + dev + true + 3600 + 3600 + + + + + test + + test + false + 180 + 180 + + + + + prod + + prod + true + 3600 + 3600 + + + + + + + + + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-admin-core + ${casic.version} + + + com.casic + casic-admin-area + ${casic.version} + + + + + + + + + + com.casic + casic-device + ${pro.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-cache + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + org.springframework.boot + spring-boot-devtools + true + + + + + + org.apache.shiro + shiro-core + + + slf4j-api + org.slf4j + + + + + org.apache.shiro + shiro-spring + + + org.apache.shiro + shiro-ehcache + + + slf4j-api + org.slf4j + + + + + org.ehcache + ehcache + ${ehcache.version} + + + + commons-io + commons-io + + + com.github.penggle + kaptcha + + + com.google.zxing + core + + + com.ibeetl + beetl + + + org.apache.commons + commons-lang3 + + + com.oracle + ojdbc6 + ${oracle.version} + + + org.codehaus.groovy + groovy-all + true + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + org.apache.maven.plugins + maven-jar-plugin + + + + /config/** + **/MockController.class + + + + + + + + + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + maven-assembly-plugin + + + false + + src/main/build/package.xml + + + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-resources-plugin + 2.6 + + + ${resource.delimiter} + + true + + + + copy-resources + validate + + copy-resources + + + ${project.build.outputDirectory} + + + + src/main/resources + true + + + + + + + + + + src/main/webapp + + + src/main/resources + + + src/main/java + + **/*.xml + + true + + + + + diff --git "a/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" "b/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" new file mode 100644 index 0000000..9656df2 --- /dev/null +++ "b/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" @@ -0,0 +1,4 @@ +@echo off +title 智慧城管 +java -jar guns-web-1.0.0-SNAPSHOT.jar +@pause diff --git a/casic-web/src/main/build/package.xml b/casic-web/src/main/build/package.xml new file mode 100644 index 0000000..68b7576 --- /dev/null +++ b/casic-web/src/main/build/package.xml @@ -0,0 +1,26 @@ + + + package + + zip + + true + + + src/main/bin + / + + + src/main/resources/config + / + + + ${project.build.directory} + / + + *.jar + + + + + \ No newline at end of file diff --git a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java new file mode 100644 index 0000000..0b0c3fb --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java @@ -0,0 +1,35 @@ +package com.casic.missiles; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * SpringBoot方式启动类 + * + * @author casic + * @Date 2017/5/21 12:06 + */ +@SpringBootApplication +@ServletComponentScan +@EnableTransactionManagement(proxyTargetClass = true) +public class CasicApplication { + + private static final Logger logger = LoggerFactory.getLogger(CasicApplication.class); + + public static void main(String[] args){ + SpringApplication.run(CasicApplication.class, args); + logger.info("GunsApplication is success!"); + + } + +} + + + + + + diff --git a/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java new file mode 100644 index 0000000..269025c --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java @@ -0,0 +1,18 @@ +package com.casic.missiles; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.support.SpringBootServletInitializer; + +/** + * Guns Web程序启动类 + * + * @author fengshuonan + * @date 2017-05-21 9:43 + */ +public class CasicServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(CasicApplication.class); + } +} diff --git a/casic-web/src/main/java/com/casic/missiles/controller/MockController.java b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java new file mode 100644 index 0000000..a8285e8 --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java @@ -0,0 +1,83 @@ +package com.casic.missiles.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.log.LogManager; +import com.casic.missiles.core.log.factory.LogTaskFactory; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.core.shiro.ShiroUser; +import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.contant.PermissionContant; +import com.casic.missiles.modular.system.dto.LoginResult; +import org.apache.commons.lang3.StringUtils; +import org.apache.shiro.authc.UsernamePasswordToken; +import org.apache.shiro.subject.Subject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.servlet.http.HttpServletRequest; +import java.security.NoSuchAlgorithmException; +import java.util.Map; + +import static com.casic.missiles.core.support.HttpKit.getIp; + +/** + * 仅为mock登录使用 + */ +@Controller +@RequestMapping("/route") +public class MockController extends BaseController { + private static final Logger logger = LoggerFactory.getLogger(MockController.class); + + /** + * 获取mockToken + */ + @GetMapping("/mockToken") + @ResponseBody + public Object subdepts(HttpServletRequest request, String username, String password) { + ShiroKit.getSession().setAttribute(PermissionContant.IS_APP, false); + SuccessResponseData resultData = new SuccessResponseData(); + if (ToolUtil.isOneEmpty(username, password)) { + username = "admin"; + password = "1111111a"; + } + Subject currentUser = ShiroKit.getSubject(); + + try { + Map key = RSAUtils.genKeyPair(); + ShiroKit.getSession().setAttribute(PermissionContant.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey)); + logger.info("秘钥:".concat(key.get(RSAUtils.RSAPublicKey))); + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + + + UsernamePasswordToken token = new UsernamePasswordToken(username, password.toCharArray()); + token.setRememberMe(false); + try { + currentUser.login(token); + } catch (Exception e) { + e.printStackTrace(); + } + ShiroUser shiroUser = ShiroKit.getUser(); + super.getSession().setAttribute("shiroUser", shiroUser); + super.getSession().setAttribute("username", shiroUser.getAccount()); + + super.getSession().setAttribute(PermissionContant.SESSION_KEY, shiroUser.getId()); + + LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp())); + + ShiroKit.getSession().setAttribute("sessionFlag", true); + resultData.setData(new LoginResult(ShiroKit.getSession().getId().toString(), null)); + resultData.setMessage("登录成功"); + return resultData; + } + +} diff --git a/casic-web/src/main/resources/application.yml b/casic-web/src/main/resources/application.yml new file mode 100644 index 0000000..70cc33b --- /dev/null +++ b/casic-web/src/main/resources/application.yml @@ -0,0 +1,18 @@ +########################################################## +################## 所有profile共有的配置 ################# +########################################################## +spring: + profiles: + active: @activatedProperties@ + datasource: + driver-class-name: com.mysql.jdbc.Driver + jms: + pub-sub-domain: true + aop: + proxy-target-class: true #false为启用jdk默认动态代理,true为cglib动态代理 +################### mybatis-plus配置 ################### +################### guns配置 ################### +casic: + kaptcha-open: true #是否开启登录时验证码 (true/false) + file-upload-path: d:/tmp #文件上传目录(不配置的话为java.io.tmpdir目录) + nologin-urls: /user/login,/kaptcha,/config/baseConfig \ No newline at end of file diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml new file mode 100644 index 0000000..99216e3 --- /dev/null +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -0,0 +1,24 @@ +server: + port: 8083 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://139.198.17.115:3000/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: root + initial-size: 2 + min-idle: 1 +#flowable数据源和多数据源配置 +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /user/login,/user/appLogin,/kaptcha,/config/baseConfig,/route/mockToken,/process/processDiagram,/enterprise2/list,/enterprise2/report,/enterprise3/list,enterprise3/report + file-upload-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\upload\ + file-download-path: D:\tmp\ + producerName: producer + repairName: repair +logging: + level.root: info + level.com.casic: debug + path: logs/ + file: missiles.log + diff --git a/casic-web/src/main/resources/config/application-prod.yml b/casic-web/src/main/resources/config/application-prod.yml new file mode 100644 index 0000000..d54ce16 --- /dev/null +++ b/casic-web/src/main/resources/config/application-prod.yml @@ -0,0 +1,20 @@ +server: + port: 8093 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://139.198.17.115:3000/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: root + initial-size: 2 + min-idle: 1 +#flowable数据源和多数据源配置 +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /user/login,/user/appLogin,/kaptcha,/config/baseConfig,/route/mockToken,/process/processDiagram + file-upload-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\upload +logging: + level.root: info + level.com.casic: debug + path: logs/ + file: missiles.log \ No newline at end of file diff --git a/casic-web/src/main/resources/config/application-test.yml b/casic-web/src/main/resources/config/application-test.yml new file mode 100644 index 0000000..40ec8f5 --- /dev/null +++ b/casic-web/src/main/resources/config/application-test.yml @@ -0,0 +1,21 @@ +server: + port: 8093 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://139.198.17.115:3000/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: root + initial-size: 2 + min-idle: 1 +#flowable数据源和多数据源配置 +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /user/login,/user/appLogin,/kaptcha,/config/baseConfig,/route/mockToken,/process/processDiagram + file-upload-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\upload +logging: + level.root: info + level.com.casic: debug + path: logs/ + file: missiles.log + diff --git a/casic-web/src/main/resources/ehcache.xml b/casic-web/src/main/resources/ehcache.xml new file mode 100644 index 0000000..78c82d8 --- /dev/null +++ b/casic-web/src/main/resources/ehcache.xml @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + diff --git a/casic-web/src/main/resources/excel/contractImp.xlsx b/casic-web/src/main/resources/excel/contractImp.xlsx new file mode 100644 index 0000000..71e3f4a --- /dev/null +++ b/casic-web/src/main/resources/excel/contractImp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/contractList.xlsx b/casic-web/src/main/resources/excel/contractList.xlsx new file mode 100644 index 0000000..19dda44 --- /dev/null +++ b/casic-web/src/main/resources/excel/contractList.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/devTypeImp.xlsx b/casic-web/src/main/resources/excel/devTypeImp.xlsx new file mode 100644 index 0000000..516a5a6 --- /dev/null +++ b/casic-web/src/main/resources/excel/devTypeImp.xlsx Binary files differ diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java new file mode 100644 index 0000000..4670df3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 集中器相关日志 + */ +public class ProjectDict extends AbstractDictMap { + public static final String PROJECT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + @Override + public void init() { + put("projectName","项目名称"); + put("projectSimpleName","项目简称"); + put("projectManager","项目经理"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java new file mode 100644 index 0000000..7981a17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dto; + +/** + * 用于设备类型展示 + * @author test203 + * @date 2020-04-03 + */ +public class DeviceTypeDto { + private Long id; + private String productName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java new file mode 100644 index 0000000..f254585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java @@ -0,0 +1,361 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.math.BigDecimal; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; + +/** + *

+ * 管理员表 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@TableName("sys_user") +public class Account extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + /** + * 头像 + */ + private String avatar; + /** + * 账号 + */ + private String account; + /** + * 密码 + */ + private String password; + /** + * md5密码盐 + */ + private String salt; + /** + * 名字 + */ + private String name; + /** + * 生日 + */ + private Date birthday; + /** + * 性别(1:男 2:女) + */ + private String sex; + /** + * 电子邮件 + */ + private String email; + /** + * 电话 + */ + private String phone; + /** + * 角色id + */ + private String roleid; + /** + * 部门id + */ + private Long deptid; + /** + * 状态(1:启用 2:冻结 3:删除) + */ + private String status; + /** + * 创建时间 + */ + private Date createtime; + /** + * 保留字段 + */ + private Integer version; + private String targetid; + private String targetname; + @TableField("password_sync") + private String passwordSync; + @TableField("IS_SYNC") + private Integer isSync; + private String simplename; + /** + * 同步组织ID + */ + @TableField("TARGET_DEPTID_SYNC") + private String targetDeptidSync; + @TableField("LOGIN_IP") + private String loginIp; + @TableField("LOGIN_MAC") + private String loginMac; + /** + * 最后在线时间 + */ + @TableField("LAST_TIME") + private Date lastTime; + /** + * 经度 + */ + @TableField("POSITION_LNG") + private BigDecimal positionLng; + /** + * 纬度 + */ + @TableField("POSITION_LAT") + private BigDecimal positionLat; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt() { + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getRoleid() { + return roleid; + } + + public void setRoleid(String roleid) { + this.roleid = roleid; + } + + public Long getDeptid() { + return deptid; + } + + public void setDeptid(Long deptid) { + this.deptid = deptid; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + public String getTargetid() { + return targetid; + } + + public void setTargetid(String targetid) { + this.targetid = targetid; + } + + public String getTargetname() { + return targetname; + } + + public void setTargetname(String targetname) { + this.targetname = targetname; + } + + public String getPasswordSync() { + return passwordSync; + } + + public void setPasswordSync(String passwordSync) { + this.passwordSync = passwordSync; + } + + public Integer getIsSync() { + return isSync; + } + + public void setIsSync(Integer isSync) { + this.isSync = isSync; + } + + public String getSimplename() { + return simplename; + } + + public void setSimplename(String simplename) { + this.simplename = simplename; + } + + public String getTargetDeptidSync() { + return targetDeptidSync; + } + + public void setTargetDeptidSync(String targetDeptidSync) { + this.targetDeptidSync = targetDeptidSync; + } + + public String getLoginIp() { + return loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getLoginMac() { + return loginMac; + } + + public void setLoginMac(String loginMac) { + this.loginMac = loginMac; + } + + public Date getLastTime() { + return lastTime; + } + + public void setLastTime(Date lastTime) { + this.lastTime = lastTime; + } + + public BigDecimal getPositionLng() { + return positionLng; + } + + public void setPositionLng(BigDecimal positionLng) { + this.positionLng = positionLng; + } + + public BigDecimal getPositionLat() { + return positionLat; + } + + public void setPositionLat(BigDecimal positionLat) { + this.positionLat = positionLat; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", avatar=" + avatar + + ", account=" + account + + ", password=" + password + + ", salt=" + salt + + ", name=" + name + + ", birthday=" + birthday + + ", sex=" + sex + + ", email=" + email + + ", phone=" + phone + + ", roleid=" + roleid + + ", deptid=" + deptid + + ", status=" + status + + ", createtime=" + createtime + + ", version=" + version + + ", targetid=" + targetid + + ", targetname=" + targetname + + ", passwordSync=" + passwordSync + + ", isSync=" + isSync + + ", simplename=" + simplename + + ", targetDeptidSync=" + targetDeptidSync + + ", loginIp=" + loginIp + + ", loginMac=" + loginMac + + ", lastTime=" + lastTime + + ", positionLng=" + positionLng + + ", positionLat=" + positionLat + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java new file mode 100644 index 0000000..81516b7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -0,0 +1,110 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_batch") +public class Batch extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_number") + private Long batchNumber; + @TableField("batch_count") + private Long batchCount; + @TableField("contract_id") + private Long contractId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("task_id") + private Long taskId; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(Long batchNumber) { + this.batchNumber = batchNumber; + } + + public Long getBatchCount() { + return batchCount; + } + + public void setBatchCount(Long batchCount) { + this.batchCount = batchCount; + } + + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Batch{" + + "id=" + id + + ", batchNumber=" + batchNumber + + ", batchCount=" + batchCount + + ", contractId=" + contractId + + ", taskId=" + taskId + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java new file mode 100644 index 0000000..893a1ed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -0,0 +1,186 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_contract") +public class Contract extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("contract_number") + private String contractNumber; + @TableField("contract_name") + private String contractName; + @TableField("contract_content") + private String contractContent; + @TableField("contract_amount") + private String contractAmount; + @TableField("external_project_apply") + private String externalProjectApply; + @TableField("external_contract_apply") + private String externalContractApply; + @TableField("principal") + private String principal; + @TableField("external_check_apply") + private String externalCheckApply; + @TableField("contract_factory") + private String contractFactory; + @TableField("createtime") + private Date createtime; + @TableField(exist = false) + private String paymentStatus; + @TableField(exist = false) + private String netFlow; + @TableField("deptid") + private String deptid; + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getContractName() { + return contractName; + } + + public void setContractName(String contractName) { + this.contractName = contractName; + } + + public String getContractContent() { + return contractContent; + } + + public void setContractContent(String contractContent) { + this.contractContent = contractContent; + } + + public String getContractAmount() { + return contractAmount; + } + + public void setContractAmount(String contractAmount) { + this.contractAmount = contractAmount; + } + + public String getExternalProjectApply() { + return externalProjectApply; + } + + public void setExternalProjectApply(String externalProjectApply) { + this.externalProjectApply = externalProjectApply; + } + + public String getExternalContractApply() { + return externalContractApply; + } + + public void setExternalContractApply(String externalContractApply) { + this.externalContractApply = externalContractApply; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalCheckApply() { + return externalCheckApply; + } + + public void setExternalCheckApply(String externalCheckApply) { + this.externalCheckApply = externalCheckApply; + } + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public String getContractFactory() { + return contractFactory; + } + + public void setContractFactory(String contractFactory) { + this.contractFactory = contractFactory; + } + + public String getNetFlow() { + return netFlow; + } + + public void setNetFlow(String netFlow) { + this.netFlow = netFlow; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Contract{" + + "contractNumber=" + contractNumber + + ", contractName=" + contractName + + ", contractContent=" + contractContent + + ", contractAmount=" + contractAmount + + ", externalProjectApply=" + externalProjectApply + + ", externalContractApply=" + externalContractApply + + ", principal=" + principal + + ", id=" + id + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java new file mode 100644 index 0000000..8718d91 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -0,0 +1,150 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_device") +public class Device extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_id") + private Long batchId; + private String devcode; + @TableField("devtype_id") + private Long devtypeId; + @TableField("is_send") + private String isSend; + private String longitude; + private String latitude; + @TableField("install_height") + private String installHeight; + private String iccid; + private Long imei; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public Long getImei() { + return imei; + } + + public void setImei(Long imei) { + this.imei = imei; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Device{" + + "id=" + id + + ", batchId=" + batchId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", isSend=" + isSend + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", installHeight=" + installHeight + + ", iccid=" + iccid + + ", imei=" + imei + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java new file mode 100644 index 0000000..870c36f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_payments") +public class Payments extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @TableField("paytime") + private Date paytime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getPaytime() { + return paytime; + } + + public void setPaytime(Date paytime) { + this.paytime = paytime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Payments{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", paytime=" + paytime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java new file mode 100644 index 0000000..ae6b585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -0,0 +1,285 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_device_type") +public class ProductDeviceType extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 产品名称 + */ + @TableField("product_name") + private String productName; + /** + * 产品型号 + */ + @TableField("product_model") + private String productModel; + + /** + * 通讯版本号 + */ + @TableField("communication_version") + private String communicationVersion; + + /** + * 产品类型 + */ + @TableField("product_type") + private String productType; + + /** + * 整机版本号 + */ + @TableField("machine_version") + private String machineVersion; + /** + * 硬件版本号 + */ + @TableField("hardware_version") + private String hardwareVersion; + /** + * 软件版本号 + */ + @TableField("software_version") + private String softwareVersion; + /** + * 设计归档 + */ + @TableField("design_archive") + private String designArchive; + /** + * 批产归档 + */ + @TableField("batch_filing") + private String batchFiling; + /** + * 状态 + */ + @TableField("status") + private Integer status; + /** + * 性能指标 + */ + @TableField("kpi") + private String kpi; + /** + * 批产负责人 + */ + @TableField("principal") + private String principal; + /** + * 定额汇总表 + */ + @TableField("quota_summary") + private String quotaSummary; + + /** + * 权属部门 + */ + @TableField("deptid") + private String deptid; + + /** + * 备注 + */ + @TableField("descn") + private String descn; + + @TableField("createtime") + private Date createtime; + + + @TableField(exist = false) + private String statusFmt; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } + + public String getMachineVersion() { + return machineVersion; + } + + public void setMachineVersion(String machineVersion) { + this.machineVersion = machineVersion; + } + + public String getHardwareVersion() { + return hardwareVersion; + } + + public void setHardwareVersion(String hardwareVersion) { + this.hardwareVersion = hardwareVersion; + } + + public String getSoftwareVersion() { + return softwareVersion; + } + + public void setSoftwareVersion(String softwareVersion) { + this.softwareVersion = softwareVersion; + } + + public String getDesignArchive() { + return designArchive; + } + + public void setDesignArchive(String designArchive) { + this.designArchive = designArchive; + } + + public String getBatchFiling() { + return batchFiling; + } + + public void setBatchFiling(String batchFiling) { + this.batchFiling = batchFiling; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getKpi() { + return kpi; + } + + public void setKpi(String kpi) { + this.kpi = kpi; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public String getQuotaSummary() { + return quotaSummary; + } + + public void setQuotaSummary(String quotaSummary) { + this.quotaSummary = quotaSummary; + } + + public String getStatusFmt() { + return statusFmt; + } + + public void setStatusFmt(String statusFmt) { + this.statusFmt = statusFmt; + } + + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getProductType() { + return productType; + } + + public void setProductType(String productType) { + this.productType = productType; + } + + public String getCommunicationVersion() { + return communicationVersion; + } + + public void setCommunicationVersion(String communicationVersion) { + this.communicationVersion = communicationVersion; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductDeviceType{" + + "id=" + id + + ", productName=" + productName + + ", productModel=" + productModel + + ", machineVersion=" + machineVersion + + ", hardwareVersion=" + hardwareVersion + + ", softwareVersion=" + softwareVersion + + ", designArchive=" + designArchive + + ", batchFiling=" + batchFiling + + ", status=" + status + + ", kpi=" + kpi + + ", principal=" + principal + + ", quotaSummary=" + quotaSummary + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java new file mode 100644 index 0000000..b0fd924 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java @@ -0,0 +1,187 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_factory_information") +public class ProductFactoryInformation extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 厂家名称 + */ + @TableField("name") + private String name; + /** + * 厂家联系人 + */ + @TableField("person_name") + private String personName; + /** + * 地址 + */ + @TableField("address") + private String address; + /** + * 电话 + */ + @TableField("phone") + private String phone; + /** + * 开户行 + */ + @TableField("bank") + private String bank; + /** + * 税号 + */ + @TableField("tax_number") + private String taxNumber; + /** + * 在产设备 + */ + @TableField("producting_device") + private String productingDevice; + /** + * 设备报价表 + */ + @TableField("equipment_quotation") + private String equipmentQuotation; + + @TableField("createtime") + private Date createtime =new Date(); + + @TableField("deptid") + private String deptid; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPersonName() { + return personName; + } + + public void setPersonName(String personName) { + this.personName = personName; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getBank() { + return bank; + } + + public void setBank(String bank) { + this.bank = bank; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getProductingDevice() { + return productingDevice; + } + + public void setProductingDevice(String productingDevice) { + this.productingDevice = productingDevice; + } + + public String getEquipmentQuotation() { + return equipmentQuotation; + } + + public void setEquipmentQuotation(String equipmentQuotation) { + this.equipmentQuotation = equipmentQuotation; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductFactoryInformation{" + + "id=" + id + + ", name=" + name + + ", personName=" + personName + + ", address=" + address + + ", phone=" + phone + + ", bank=" + bank + + ", taxNumber=" + taxNumber + + ", productingDevice=" + productingDevice + + ", equipmentQuotation=" + equipmentQuotation + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java new file mode 100644 index 0000000..00cbc92 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -0,0 +1,99 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@TableName("product_project") +public class Project extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_name") + private String projectName; + @TableField("project_simple_name") + private String projectSimpleName; + @TableField("project_manager") + private String projectManager; + private String descn; + @TableField("createtime") + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getProjectManager() { + return projectManager; + } + + public void setProjectManager(String projectManager) { + this.projectManager = projectManager; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Project{" + + "id=" + id + + ", projectName=" + projectName + + ", projectSimpleName=" + projectSimpleName + + ", projectManager=" + projectManager + + ", descn=" + descn + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java new file mode 100644 index 0000000..658c2e1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java @@ -0,0 +1,126 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_reimburse") +public class Reimburse extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mi:ss") + @TableField("reimburse_time") + private Date reimburseTime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getReimburseTime() { + return reimburseTime; + } + + public void setReimburseTime(Date reimburseTime) { + this.reimburseTime = reimburseTime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Reimburse{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", reimburseTime=" + reimburseTime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java new file mode 100644 index 0000000..987efa7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java @@ -0,0 +1,141 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_task") +public class Task extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_id") + private Long projectId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("devmode_id") + private String devmodeId; + private Long devcount; + @TableField("delivery_time") + private Date deliveryTime; + private String demand; + private Date createtime; + @TableField(exist = false) + private String deliveryTimeFmt; + + @TableField(exist = false) + private Long taskId; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getProjectId() { + return projectId; + } + + public void setProjectId(Long projectId) { + this.projectId = projectId; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDevmodeId() { + return devmodeId; + } + + public void setDevmodeId(String devmodeId) { + this.devmodeId = devmodeId; + } + + public Long getDevcount() { + return devcount; + } + + public void setDevcount(Long devcount) { + this.devcount = devcount; + } + + public Date getDeliveryTime() { + return deliveryTime; + } + + public void setDeliveryTime(Date deliveryTime) { + this.deliveryTime = deliveryTime; + } + + public String getDemand() { + return demand; + } + + public void setDemand(String demand) { + this.demand = demand; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeliveryTimeFmt() { + return deliveryTimeFmt; + } + + public void setDeliveryTimeFmt(String deliveryTimeFmt) { + this.deliveryTimeFmt = deliveryTimeFmt; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Task{" + + "id=" + id + + ", projectId=" + projectId + + ", devtypeId=" + devtypeId + + ", devmodeId=" + devmodeId + + ", devcount=" + devcount + + ", deliveryTime=" + deliveryTime + + ", demand=" + demand + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java new file mode 100644 index 0000000..7785de5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface IAccountService extends IService { + + /** + * 根据用户名查用户 + * @param userName + * @return + */ + Account findUserByName(String userName); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java new file mode 100644 index 0000000..d8b5e87 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IContractService extends IService { + List selectPageList(Page page, String keyword1, String keyword2, String keyword3); + List reportExport(String keyword1, String keyword2, String keyword3); + void importContract( List contracts); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java new file mode 100644 index 0000000..0f2d6e0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IPaymentsService extends IService { + + boolean validate(Long proId,String money,String reorder); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java new file mode 100644 index 0000000..71490df --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -0,0 +1,62 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductDeviceTypeService extends IService { + + /** + * 批量导入设备类型列表 + * @param results + */ + void importDeviceType(List results); + + /** + * 导出列表 + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List reportExport(String keyword1,String keyword2,String keyword3); + + + /** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectPageDataScope(DataScope dataScope, Page page, + String keyword1, String keyword2, String keyword3); + + /** + * 获取在产的设备类型 + * @return + */ + List selectDeviceTypeList(); + + /** + * 根据产品型号获取产品 + * @param deviceModel + * @return + */ + ProductDeviceType selectDeviceTypeByModel(String deviceModel); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java new file mode 100644 index 0000000..455f60a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductFactoryInformationService extends IService { + /** + * 根据条件导出列表 + * @param keyword1 + * @param keyword2 + * @return + */ + List reportExport(String keyword1, String keyword2); + + + /** + * 导入 + * @param results + */ + void importDeviceType(List results); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java new file mode 100644 index 0000000..3c27bd1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface IProjectService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java new file mode 100644 index 0000000..ee0a55c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IReimburseService extends IService { + boolean validate(Long proId,String money,String reorder); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java new file mode 100644 index 0000000..09ce653 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.dao.AccountMapper; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.stereotype.Service; + +/** + *

+ * 管理员表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@Service +public class AccountServiceImpl extends ServiceImpl implements IAccountService { + + @Override + public Account findUserByName(String userName) { + + EntityWrapper userEntityWrapper = new EntityWrapper<>(); + userEntityWrapper.eq("name",userName); + userEntityWrapper.eq("status","1"); + return this.selectOne(userEntityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java new file mode 100644 index 0000000..dd04da0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java @@ -0,0 +1,138 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.shiro.ShiroUser; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ContractMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IPaymentsService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ContractServiceImpl extends ServiceImpl implements IContractService { + @Autowired + private IPaymentsService paymentsService; + @Autowired + private ICommonPermissionService permissionService; + @Autowired + private IAccountService userService; + @Value("${casic.producerName}") + private String producerName; + @Value("${casic.repairName}") + private String repairName; + + @Override + public List selectPageList(Page page, String keyword1, String keyword2, String keyword3) { + +// EntityWrapper query = new EntityWrapper<>(); +// if (ToolUtil.isNotEmpty(keyword1)) { +// query.like("contract_factory", keyword1); +// } +// if (ToolUtil.isNotEmpty(keyword3)) { +// query.like("contract_number", keyword3); +// } +// List contractList = this.selectPage(page, query).getRecords(); +// contractList.forEach(contract -> { +// contract.setPaymentStatus(getPaymentStatus(contract)); +// String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" +// + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" +// + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); +// contract.setNetFlow(netFlowStr); +// +// }); +// return contractList; + + + List contractList = new ArrayList<>(); + DataScope dataScope = permissionService.getCurrUserDataScope(); + ShiroUser currentUser = permissionService.getCurrLoginUser(); + if (currentUser.getRoleTips().contains(producerName) || currentUser.getRoleTips().contains(repairName)) { + contractList = this.baseMapper.findContractList(dataScope,page, currentUser.getName(), keyword1, keyword2, keyword3); + } else { + contractList = this.baseMapper.findContractList(dataScope,page, "", keyword1, keyword2, keyword3); + } + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + + }); + return contractList; + } + + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + + + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("contractFactory", keyword1); + } + if (ToolUtil.isNotEmpty(keyword3)) { + query.like("contract_number", keyword3); + } + + List contractList = this.selectList(query); + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); +// permissionService.findInDictByCode("applyStatus") + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + }); + + return contractList; + } + + @Override + public void importContract(List contracts) { + contracts.forEach(contract -> { + EntityWrapper query = new EntityWrapper<>(); + query.eq("contract_number", contract.getContractNumber()); + this.delete(query); + Account user = userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); + this.insert(contract); + }); + } + + public String getPaymentStatus(Contract contract) { + Map paraMap = new HashMap<>(); + paraMap.put("pro_id", contract.getId()); + List paymentsList = paymentsService.selectByMap(paraMap); + float sum = 0; + for (Payments payments : paymentsList) { + sum = sum + (ToolUtil.isNotEmpty(payments.getMoney()) ? Float.parseFloat(payments.getMoney()) : 0); + } + DecimalFormat df = new DecimalFormat("0"); + return sum + "," + df.format(100 * sum / Float.valueOf(contract.getContractAmount())) + "%"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java new file mode 100644 index 0000000..0c125d8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PaymentsMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class PaymentsServiceImpl extends ServiceImpl implements IPaymentsService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money,String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List paymentsList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Payments payments : paymentsList) { + if(reorder.equals(payments.getReorder())) continue; + total += ToolUtil.isNotEmpty(payments.getMoney()) ? + Long.valueOf(payments.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java new file mode 100644 index 0000000..ac6d447 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductDeviceTypeMapper; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.swing.text.html.parser.Entity; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductDeviceTypeServiceImpl extends ServiceImpl implements IProductDeviceTypeService { + + @Autowired + private ICommonPermissionService permissionService; + + @Transactional(rollbackFor = Exception.class) + @Override + public void importDeviceType(List results) { + + for (ProductDeviceType productDeviceType : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + this.baseMapper.delete(wrapper); + this.baseMapper.insert(productDeviceType); + } + } + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + wrapper.like("principal", keyword3); + } + List productDeviceTypes = this.selectList(wrapper); + for (ProductDeviceType productDeviceType : productDeviceTypes) { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + } + return productDeviceTypes; + } + + @Override + public List selectPageDataScope(DataScope dataScope, Page page, String keyword1, String keyword2, String keyword3) { + + List productDeviceTypeList = this.baseMapper.selectDataScopePage(dataScope, page, keyword1, keyword2, keyword3); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + return productDeviceTypeList; + + } + + @Override + public List selectDeviceTypeList() { + return this.baseMapper.selectDeviceTypeList(); + } + + + @Override + public ProductDeviceType selectDeviceTypeByModel(String deviceModel) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("product_model",deviceModel); + return this.selectOne(entityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java new file mode 100644 index 0000000..efe4410 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java @@ -0,0 +1,50 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductFactoryInformationMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductFactoryInformationServiceImpl extends ServiceImpl implements IProductFactoryInformationService { + + @Override + public List reportExport(String keyword1, String keyword2) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.like("producting_device", keyword2); + } + List productFactoryInformations = this.selectList(wrapper); + + return productFactoryInformations; + } + + + @Transactional(rollbackFor=Exception.class) + @Override + public void importDeviceType(List results) { + for (ProductFactoryInformation productFactoryInformation : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + delete(wrapper); + this.baseMapper.insert(productFactoryInformation); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java new file mode 100644 index 0000000..34655b0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.dao.ProjectMapper; +import com.casic.missiles.modular.system.service.IProjectService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@Service +public class ProjectServiceImpl extends ServiceImpl implements IProjectService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java new file mode 100644 index 0000000..5e8b77b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java @@ -0,0 +1,48 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.dao.ReimburseMapper; +import com.casic.missiles.modular.system.service.IReimburseService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ReimburseServiceImpl extends ServiceImpl implements IReimburseService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money, String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List reimburseList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Reimburse reimburse : reimburseList) { + if (reorder.equals(reimburse.getReorder())) continue; + total += ToolUtil.isNotEmpty(reimburse.getMoney()) ? + Long.valueOf(reimburse.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java new file mode 100644 index 0000000..d5ffadb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java @@ -0,0 +1,235 @@ +package com.casic.missiles.modular.system.util; + +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; + +import java.util.*; + +/** + * @author test203 + * @since 2020-04-06 + */ +public class DeviceUtil { + private final static String factoryCode = "20"; + private final static String wellExcludeCode = "4120"; + private final static String loraDevice = "A"; + private static Map devTypeCountHashMap = new HashMap(); + + static { + devTypeCountHashMap.put("电子标识器", 99999L); + devTypeCountHashMap.put("井盖状态监测仪", 65534L); + devTypeCountHashMap.put("灯箱控制器", 65535L); + devTypeCountHashMap.put("单灯控制器(单路)", 65535L); + devTypeCountHashMap.put("单灯控制器(双路)", 65535L); + devTypeCountHashMap.put("数据集中器", 255L); + devTypeCountHashMap.put("有害气体监测仪", 999L); + } + + public static List createDevCodes(ProductDeviceType deviceType, List batches) { + List deviceList = new ArrayList<>(); + try { + if ("电子标识器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 年份XX 批次号XX 编号XXXXX + String devCode = deviceType.getProductType() + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%05d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("井盖状态监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + String wellCode4 = String.format("%04x", i); + if (wellExcludeCode.equals(wellCode4)) { + continue; + } + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + wellCode4; + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("灯箱控制器".equals(deviceType.getProductName()) || + "单灯控制器(单路)".equals(deviceType.getProductName()) || + "单灯控制器(双路)".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("数据集中器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("有害气体监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型WS2000X- 年份XX 批次序号XXXX 编号XXX + String devCode = deviceType.getProductType() + + getYearFmt() + + String.format("%04d", batch.getBatchNumber()) + + String.format("%03d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } + //其他设备类型分lora和非lora版本 + else { + if (loraDevice.equals(deviceType.getCommunicationVersion())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } else { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return deviceList; + } + + + public static Map validate(ProductDeviceType deviceType, List batches, Task task) { + Map resultMap = new HashMap<>(); + boolean success = true; + String msg = ""; + long devSum = null != task ? task.getDevcount() : 0; + long devcount = 0, batchCountMax; + batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? + 0 : devTypeCountHashMap.get(deviceType.getProductName()); + if (0 == batchCountMax) { + if (deviceType.getProductModel().indexOf(loraDevice) + == deviceType.getProductModel().length() - 1) { + batchCountMax = 255; + } else { + batchCountMax = 9999; + } + } + for (Batch batch : batches) { + if (batch.getBatchCount() > batchCountMax) { + success = false; + msg = batch.getBatchNumber() + "批次号数量超过了最大范围" + batchCountMax; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + devcount += batch.getBatchCount(); + } + if (devcount != devSum) { + return returnMsg(); + } + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + + public static Map returnMsg() { + Map resultMap = new HashMap<>(); + resultMap.put("success", false); + resultMap.put("msg", "所有批次数量之和与任务中设备数量不一致!"); + return resultMap; + } + + /** + * 获取编码中的年份 + * + * @return + */ + public static String getYearFmt() { + + return DateUtil.format(new Date(), "yyyy").substring(2); + } + + + /** + * 比较2个map + * + * @param batchMap + * @param batchMap1 + * @return + */ + public static boolean equalMap(Map batchMap, Map batchMap1) { + if (batchMap.size() != batchMap1.size()) { + return false; + } + Iterator iter1 = batchMap.keySet().iterator(); + while (iter1.hasNext()) { + Long map1key = iter1.next(); + String map1value = batchMap.get(map1key).toString(); + String map2value = batchMap1.get(map1key).toString(); + if (!map1value.equals(map2value)) { + return false; + } + } + return true; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java new file mode 100644 index 0000000..33c3535 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java @@ -0,0 +1,43 @@ +package com.casic.missiles.modular.system.util; + +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; + +public class FileUtil { + public static File createFile(String path) throws IOException { + File file = new File(path); + if (!file.exists()) { + file.getParentFile().mkdirs(); + file.createNewFile(); + } + return file; + } + + + public static void downloadLocalFile(HttpServletResponse response,String path, String fileName) throws IOException { + File file = new File(path); + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", "attachment; filename=\"" + URLEncoder.encode(fileName, "UTF-8") + "\""); + response.setContentLength((int) file.length()); + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java new file mode 100644 index 0000000..341d3d1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.task.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.task.service.IBatchService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 批次控制器 + * + * @author dev + * @Date 2020-03-27 15:29:55 + */ +@Controller +@RequestMapping("/batch") +public class BatchController extends BaseController { + + + @Autowired + private IBatchService batchService; + + + /** + * 获取批次列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return batchService.selectList(null); + } + + /** + * 获取批次分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = batchService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增批次并生成设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + @Transactional + public Object add(@RequestBody List batches, Task task) { + + return batchService.addBatchAndDevices(batches,task); + + } + + /** + * 删除批次 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String batchId) { + batchService.deleteById(batchId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("batchIds") List batchIds) { + batchService.deleteBatchIds(batchIds); + return ResponseData.success(); + } + + /** + * 修改批次 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Batch batch) { + batchService.updateById(batch); + return ResponseData.success(); + } + + + /** + * 根据设备类型id + * 查找批次号 + */ + @RequestMapping(value = "/getBatchNumber") + @ResponseBody + public Object getBatchNumber(Long devtypeId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.orderBy("id", false); + Batch batch = batchService.selectOne(entityWrapper); + return ResponseData.success(200, "", batch != null ? batch.getBatchNumber() + 1 : 1); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java new file mode 100644 index 0000000..f463168 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java @@ -0,0 +1,102 @@ +package com.casic.missiles.modular.task.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * 任务控制器 + * + * @author dev + * @Date 2020-03-27 15:28:26 + */ +@Controller +@RequestMapping("/task") +public class TaskController extends BaseController { + + + @Autowired + private ITaskService taskService; + + + /** + * 获取任务列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return taskService.selectList(null); + } + + /** + * 获取任务分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = taskService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增任务 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + taskService.insert(task); + return ResponseData.success(); + } + + /** + * 删除任务 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String taskId) { + taskService.deleteById(taskId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("taskIds") List taskIds) { + taskService.deleteBatchIds(taskIds); + return ResponseData.success(); + } + + /** + * 修改任务 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + taskService.updateById(task); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java new file mode 100644 index 0000000..04c7ef8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.task.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IBatchService extends IService { + + /** + * 添加批次和生成设备 + * @param batches + * @param task + * @return + */ + ResponseData addBatchAndDevices(List batches, Task task); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java new file mode 100644 index 0000000..50e1d37 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.task.service; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface ITaskService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java new file mode 100644 index 0000000..a435e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dao.BatchMapper; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.DeviceUtil; +import com.casic.missiles.modular.task.service.IBatchService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class BatchServiceImpl extends ServiceImpl implements IBatchService { + + @Autowired + private IProductDeviceTypeService deviceTypeService; + @Autowired + private IDeviceService deviceService; + + @Transactional(rollbackFor=Exception.class) + @Override + public ResponseData addBatchAndDevices(List batches, Task task) { + //提交前先验证是否已经存在,若存在且批次号或每批数量改变先删除 + try { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("task_id", task.getTaskId()); + List batchList = this.selectList(entityWrapper); + Map batchMap= new HashMap<>(); + Map batchMap1= new HashMap<>(); + List batchIdlist = new ArrayList<>(); + for (Batch batch : batches) { + batchMap.put(batch.getBatchNumber(),batch.getBatchCount()); + batch.setTaskId(task.getTaskId()); + batch.setDevtypeId(task.getDevtypeId()); + batchIdlist.add(batch.getId()); + } + for (Batch batch : batchList) { + batchMap1.put(batch.getBatchNumber(),batch.getBatchCount()); + } + + //若批次号和数量不变只更新批次表 + if (DeviceUtil.equalMap(batchMap, batchMap1)) { + this.insertOrUpdateBatch(batches); + } + //若批次号和数量更新,更新设备表(删除批次相关的设备后,写入新的设备) + else { + + //验证设备数量是否合格 + ProductDeviceType deviceType = deviceTypeService.selectDeviceTypeByModel(task.getDevmodeId()); + Map resultMap = DeviceUtil.validate(deviceType, batches, task); + if (!Boolean.valueOf(resultMap.get("success").toString())) { + return ResponseData.error(400, resultMap.get("msg").toString()); + } + //删除批次 + EntityWrapper batchEntityWrapper = new EntityWrapper<>(); + batchEntityWrapper.eq("task_id", task.getTaskId()); + this.delete(batchEntityWrapper); + //删除设备 + EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); + deviceEntityWrapper.in("batch_id", batchIdlist); + deviceEntityWrapper.eq("devtype_id",task.getDevtypeId()); + deviceService.delete(deviceEntityWrapper); + + //写入批次 + this.insertBatch(batches); + //写入设备 + List deviceList = DeviceUtil.createDevCodes(deviceType, batches); + deviceService.insertBatch(deviceList); + } + } catch (Exception e) { + e.printStackTrace(); + } + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java new file mode 100644 index 0000000..fac60bb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.dao.TaskMapper; +import com.casic.missiles.modular.task.service.ITaskService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class TaskServiceImpl extends ServiceImpl implements ITaskService { + +} diff --git a/casic-web/pom.xml b/casic-web/pom.xml new file mode 100644 index 0000000..f9f1c84 --- /dev/null +++ b/casic-web/pom.xml @@ -0,0 +1,300 @@ + + + 4.0.0 + + com.casic + casic-product-device + ../pom.xml + 1.0.0-SNAPSHOT + + casic-web + ${pro.version} + jar + casic-web + casic web启动入口 + + + + dev + + true + + + dev + true + 3600 + 3600 + + + + + test + + test + false + 180 + 180 + + + + + prod + + prod + true + 3600 + 3600 + + + + + + + + + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-admin-core + ${casic.version} + + + com.casic + casic-admin-area + ${casic.version} + + + + + + + + + + com.casic + casic-device + ${pro.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-cache + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + org.springframework.boot + spring-boot-devtools + true + + + + + + org.apache.shiro + shiro-core + + + slf4j-api + org.slf4j + + + + + org.apache.shiro + shiro-spring + + + org.apache.shiro + shiro-ehcache + + + slf4j-api + org.slf4j + + + + + org.ehcache + ehcache + ${ehcache.version} + + + + commons-io + commons-io + + + com.github.penggle + kaptcha + + + com.google.zxing + core + + + com.ibeetl + beetl + + + org.apache.commons + commons-lang3 + + + com.oracle + ojdbc6 + ${oracle.version} + + + org.codehaus.groovy + groovy-all + true + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + org.apache.maven.plugins + maven-jar-plugin + + + + /config/** + **/MockController.class + + + + + + + + + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + maven-assembly-plugin + + + false + + src/main/build/package.xml + + + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-resources-plugin + 2.6 + + + ${resource.delimiter} + + true + + + + copy-resources + validate + + copy-resources + + + ${project.build.outputDirectory} + + + + src/main/resources + true + + + + + + + + + + src/main/webapp + + + src/main/resources + + + src/main/java + + **/*.xml + + true + + + + + diff --git "a/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" "b/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" new file mode 100644 index 0000000..9656df2 --- /dev/null +++ "b/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" @@ -0,0 +1,4 @@ +@echo off +title 智慧城管 +java -jar guns-web-1.0.0-SNAPSHOT.jar +@pause diff --git a/casic-web/src/main/build/package.xml b/casic-web/src/main/build/package.xml new file mode 100644 index 0000000..68b7576 --- /dev/null +++ b/casic-web/src/main/build/package.xml @@ -0,0 +1,26 @@ + + + package + + zip + + true + + + src/main/bin + / + + + src/main/resources/config + / + + + ${project.build.directory} + / + + *.jar + + + + + \ No newline at end of file diff --git a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java new file mode 100644 index 0000000..0b0c3fb --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java @@ -0,0 +1,35 @@ +package com.casic.missiles; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * SpringBoot方式启动类 + * + * @author casic + * @Date 2017/5/21 12:06 + */ +@SpringBootApplication +@ServletComponentScan +@EnableTransactionManagement(proxyTargetClass = true) +public class CasicApplication { + + private static final Logger logger = LoggerFactory.getLogger(CasicApplication.class); + + public static void main(String[] args){ + SpringApplication.run(CasicApplication.class, args); + logger.info("GunsApplication is success!"); + + } + +} + + + + + + diff --git a/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java new file mode 100644 index 0000000..269025c --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java @@ -0,0 +1,18 @@ +package com.casic.missiles; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.support.SpringBootServletInitializer; + +/** + * Guns Web程序启动类 + * + * @author fengshuonan + * @date 2017-05-21 9:43 + */ +public class CasicServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(CasicApplication.class); + } +} diff --git a/casic-web/src/main/java/com/casic/missiles/controller/MockController.java b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java new file mode 100644 index 0000000..a8285e8 --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java @@ -0,0 +1,83 @@ +package com.casic.missiles.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.log.LogManager; +import com.casic.missiles.core.log.factory.LogTaskFactory; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.core.shiro.ShiroUser; +import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.contant.PermissionContant; +import com.casic.missiles.modular.system.dto.LoginResult; +import org.apache.commons.lang3.StringUtils; +import org.apache.shiro.authc.UsernamePasswordToken; +import org.apache.shiro.subject.Subject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.servlet.http.HttpServletRequest; +import java.security.NoSuchAlgorithmException; +import java.util.Map; + +import static com.casic.missiles.core.support.HttpKit.getIp; + +/** + * 仅为mock登录使用 + */ +@Controller +@RequestMapping("/route") +public class MockController extends BaseController { + private static final Logger logger = LoggerFactory.getLogger(MockController.class); + + /** + * 获取mockToken + */ + @GetMapping("/mockToken") + @ResponseBody + public Object subdepts(HttpServletRequest request, String username, String password) { + ShiroKit.getSession().setAttribute(PermissionContant.IS_APP, false); + SuccessResponseData resultData = new SuccessResponseData(); + if (ToolUtil.isOneEmpty(username, password)) { + username = "admin"; + password = "1111111a"; + } + Subject currentUser = ShiroKit.getSubject(); + + try { + Map key = RSAUtils.genKeyPair(); + ShiroKit.getSession().setAttribute(PermissionContant.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey)); + logger.info("秘钥:".concat(key.get(RSAUtils.RSAPublicKey))); + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + + + UsernamePasswordToken token = new UsernamePasswordToken(username, password.toCharArray()); + token.setRememberMe(false); + try { + currentUser.login(token); + } catch (Exception e) { + e.printStackTrace(); + } + ShiroUser shiroUser = ShiroKit.getUser(); + super.getSession().setAttribute("shiroUser", shiroUser); + super.getSession().setAttribute("username", shiroUser.getAccount()); + + super.getSession().setAttribute(PermissionContant.SESSION_KEY, shiroUser.getId()); + + LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp())); + + ShiroKit.getSession().setAttribute("sessionFlag", true); + resultData.setData(new LoginResult(ShiroKit.getSession().getId().toString(), null)); + resultData.setMessage("登录成功"); + return resultData; + } + +} diff --git a/casic-web/src/main/resources/application.yml b/casic-web/src/main/resources/application.yml new file mode 100644 index 0000000..70cc33b --- /dev/null +++ b/casic-web/src/main/resources/application.yml @@ -0,0 +1,18 @@ +########################################################## +################## 所有profile共有的配置 ################# +########################################################## +spring: + profiles: + active: @activatedProperties@ + datasource: + driver-class-name: com.mysql.jdbc.Driver + jms: + pub-sub-domain: true + aop: + proxy-target-class: true #false为启用jdk默认动态代理,true为cglib动态代理 +################### mybatis-plus配置 ################### +################### guns配置 ################### +casic: + kaptcha-open: true #是否开启登录时验证码 (true/false) + file-upload-path: d:/tmp #文件上传目录(不配置的话为java.io.tmpdir目录) + nologin-urls: /user/login,/kaptcha,/config/baseConfig \ No newline at end of file diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml new file mode 100644 index 0000000..99216e3 --- /dev/null +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -0,0 +1,24 @@ +server: + port: 8083 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://139.198.17.115:3000/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: root + initial-size: 2 + min-idle: 1 +#flowable数据源和多数据源配置 +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /user/login,/user/appLogin,/kaptcha,/config/baseConfig,/route/mockToken,/process/processDiagram,/enterprise2/list,/enterprise2/report,/enterprise3/list,enterprise3/report + file-upload-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\upload\ + file-download-path: D:\tmp\ + producerName: producer + repairName: repair +logging: + level.root: info + level.com.casic: debug + path: logs/ + file: missiles.log + diff --git a/casic-web/src/main/resources/config/application-prod.yml b/casic-web/src/main/resources/config/application-prod.yml new file mode 100644 index 0000000..d54ce16 --- /dev/null +++ b/casic-web/src/main/resources/config/application-prod.yml @@ -0,0 +1,20 @@ +server: + port: 8093 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://139.198.17.115:3000/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: root + initial-size: 2 + min-idle: 1 +#flowable数据源和多数据源配置 +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /user/login,/user/appLogin,/kaptcha,/config/baseConfig,/route/mockToken,/process/processDiagram + file-upload-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\upload +logging: + level.root: info + level.com.casic: debug + path: logs/ + file: missiles.log \ No newline at end of file diff --git a/casic-web/src/main/resources/config/application-test.yml b/casic-web/src/main/resources/config/application-test.yml new file mode 100644 index 0000000..40ec8f5 --- /dev/null +++ b/casic-web/src/main/resources/config/application-test.yml @@ -0,0 +1,21 @@ +server: + port: 8093 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://139.198.17.115:3000/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: root + initial-size: 2 + min-idle: 1 +#flowable数据源和多数据源配置 +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /user/login,/user/appLogin,/kaptcha,/config/baseConfig,/route/mockToken,/process/processDiagram + file-upload-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\upload +logging: + level.root: info + level.com.casic: debug + path: logs/ + file: missiles.log + diff --git a/casic-web/src/main/resources/ehcache.xml b/casic-web/src/main/resources/ehcache.xml new file mode 100644 index 0000000..78c82d8 --- /dev/null +++ b/casic-web/src/main/resources/ehcache.xml @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + diff --git a/casic-web/src/main/resources/excel/contractImp.xlsx b/casic-web/src/main/resources/excel/contractImp.xlsx new file mode 100644 index 0000000..71e3f4a --- /dev/null +++ b/casic-web/src/main/resources/excel/contractImp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/contractList.xlsx b/casic-web/src/main/resources/excel/contractList.xlsx new file mode 100644 index 0000000..19dda44 --- /dev/null +++ b/casic-web/src/main/resources/excel/contractList.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/devTypeImp.xlsx b/casic-web/src/main/resources/excel/devTypeImp.xlsx new file mode 100644 index 0000000..516a5a6 --- /dev/null +++ b/casic-web/src/main/resources/excel/devTypeImp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/deviceTypeList.xlsx b/casic-web/src/main/resources/excel/deviceTypeList.xlsx new file mode 100644 index 0000000..f4121d8 --- /dev/null +++ b/casic-web/src/main/resources/excel/deviceTypeList.xlsx Binary files differ diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java new file mode 100644 index 0000000..4670df3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 集中器相关日志 + */ +public class ProjectDict extends AbstractDictMap { + public static final String PROJECT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + @Override + public void init() { + put("projectName","项目名称"); + put("projectSimpleName","项目简称"); + put("projectManager","项目经理"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java new file mode 100644 index 0000000..7981a17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dto; + +/** + * 用于设备类型展示 + * @author test203 + * @date 2020-04-03 + */ +public class DeviceTypeDto { + private Long id; + private String productName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java new file mode 100644 index 0000000..f254585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java @@ -0,0 +1,361 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.math.BigDecimal; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; + +/** + *

+ * 管理员表 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@TableName("sys_user") +public class Account extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + /** + * 头像 + */ + private String avatar; + /** + * 账号 + */ + private String account; + /** + * 密码 + */ + private String password; + /** + * md5密码盐 + */ + private String salt; + /** + * 名字 + */ + private String name; + /** + * 生日 + */ + private Date birthday; + /** + * 性别(1:男 2:女) + */ + private String sex; + /** + * 电子邮件 + */ + private String email; + /** + * 电话 + */ + private String phone; + /** + * 角色id + */ + private String roleid; + /** + * 部门id + */ + private Long deptid; + /** + * 状态(1:启用 2:冻结 3:删除) + */ + private String status; + /** + * 创建时间 + */ + private Date createtime; + /** + * 保留字段 + */ + private Integer version; + private String targetid; + private String targetname; + @TableField("password_sync") + private String passwordSync; + @TableField("IS_SYNC") + private Integer isSync; + private String simplename; + /** + * 同步组织ID + */ + @TableField("TARGET_DEPTID_SYNC") + private String targetDeptidSync; + @TableField("LOGIN_IP") + private String loginIp; + @TableField("LOGIN_MAC") + private String loginMac; + /** + * 最后在线时间 + */ + @TableField("LAST_TIME") + private Date lastTime; + /** + * 经度 + */ + @TableField("POSITION_LNG") + private BigDecimal positionLng; + /** + * 纬度 + */ + @TableField("POSITION_LAT") + private BigDecimal positionLat; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt() { + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getRoleid() { + return roleid; + } + + public void setRoleid(String roleid) { + this.roleid = roleid; + } + + public Long getDeptid() { + return deptid; + } + + public void setDeptid(Long deptid) { + this.deptid = deptid; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + public String getTargetid() { + return targetid; + } + + public void setTargetid(String targetid) { + this.targetid = targetid; + } + + public String getTargetname() { + return targetname; + } + + public void setTargetname(String targetname) { + this.targetname = targetname; + } + + public String getPasswordSync() { + return passwordSync; + } + + public void setPasswordSync(String passwordSync) { + this.passwordSync = passwordSync; + } + + public Integer getIsSync() { + return isSync; + } + + public void setIsSync(Integer isSync) { + this.isSync = isSync; + } + + public String getSimplename() { + return simplename; + } + + public void setSimplename(String simplename) { + this.simplename = simplename; + } + + public String getTargetDeptidSync() { + return targetDeptidSync; + } + + public void setTargetDeptidSync(String targetDeptidSync) { + this.targetDeptidSync = targetDeptidSync; + } + + public String getLoginIp() { + return loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getLoginMac() { + return loginMac; + } + + public void setLoginMac(String loginMac) { + this.loginMac = loginMac; + } + + public Date getLastTime() { + return lastTime; + } + + public void setLastTime(Date lastTime) { + this.lastTime = lastTime; + } + + public BigDecimal getPositionLng() { + return positionLng; + } + + public void setPositionLng(BigDecimal positionLng) { + this.positionLng = positionLng; + } + + public BigDecimal getPositionLat() { + return positionLat; + } + + public void setPositionLat(BigDecimal positionLat) { + this.positionLat = positionLat; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", avatar=" + avatar + + ", account=" + account + + ", password=" + password + + ", salt=" + salt + + ", name=" + name + + ", birthday=" + birthday + + ", sex=" + sex + + ", email=" + email + + ", phone=" + phone + + ", roleid=" + roleid + + ", deptid=" + deptid + + ", status=" + status + + ", createtime=" + createtime + + ", version=" + version + + ", targetid=" + targetid + + ", targetname=" + targetname + + ", passwordSync=" + passwordSync + + ", isSync=" + isSync + + ", simplename=" + simplename + + ", targetDeptidSync=" + targetDeptidSync + + ", loginIp=" + loginIp + + ", loginMac=" + loginMac + + ", lastTime=" + lastTime + + ", positionLng=" + positionLng + + ", positionLat=" + positionLat + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java new file mode 100644 index 0000000..81516b7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -0,0 +1,110 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_batch") +public class Batch extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_number") + private Long batchNumber; + @TableField("batch_count") + private Long batchCount; + @TableField("contract_id") + private Long contractId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("task_id") + private Long taskId; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(Long batchNumber) { + this.batchNumber = batchNumber; + } + + public Long getBatchCount() { + return batchCount; + } + + public void setBatchCount(Long batchCount) { + this.batchCount = batchCount; + } + + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Batch{" + + "id=" + id + + ", batchNumber=" + batchNumber + + ", batchCount=" + batchCount + + ", contractId=" + contractId + + ", taskId=" + taskId + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java new file mode 100644 index 0000000..893a1ed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -0,0 +1,186 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_contract") +public class Contract extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("contract_number") + private String contractNumber; + @TableField("contract_name") + private String contractName; + @TableField("contract_content") + private String contractContent; + @TableField("contract_amount") + private String contractAmount; + @TableField("external_project_apply") + private String externalProjectApply; + @TableField("external_contract_apply") + private String externalContractApply; + @TableField("principal") + private String principal; + @TableField("external_check_apply") + private String externalCheckApply; + @TableField("contract_factory") + private String contractFactory; + @TableField("createtime") + private Date createtime; + @TableField(exist = false) + private String paymentStatus; + @TableField(exist = false) + private String netFlow; + @TableField("deptid") + private String deptid; + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getContractName() { + return contractName; + } + + public void setContractName(String contractName) { + this.contractName = contractName; + } + + public String getContractContent() { + return contractContent; + } + + public void setContractContent(String contractContent) { + this.contractContent = contractContent; + } + + public String getContractAmount() { + return contractAmount; + } + + public void setContractAmount(String contractAmount) { + this.contractAmount = contractAmount; + } + + public String getExternalProjectApply() { + return externalProjectApply; + } + + public void setExternalProjectApply(String externalProjectApply) { + this.externalProjectApply = externalProjectApply; + } + + public String getExternalContractApply() { + return externalContractApply; + } + + public void setExternalContractApply(String externalContractApply) { + this.externalContractApply = externalContractApply; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalCheckApply() { + return externalCheckApply; + } + + public void setExternalCheckApply(String externalCheckApply) { + this.externalCheckApply = externalCheckApply; + } + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public String getContractFactory() { + return contractFactory; + } + + public void setContractFactory(String contractFactory) { + this.contractFactory = contractFactory; + } + + public String getNetFlow() { + return netFlow; + } + + public void setNetFlow(String netFlow) { + this.netFlow = netFlow; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Contract{" + + "contractNumber=" + contractNumber + + ", contractName=" + contractName + + ", contractContent=" + contractContent + + ", contractAmount=" + contractAmount + + ", externalProjectApply=" + externalProjectApply + + ", externalContractApply=" + externalContractApply + + ", principal=" + principal + + ", id=" + id + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java new file mode 100644 index 0000000..8718d91 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -0,0 +1,150 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_device") +public class Device extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_id") + private Long batchId; + private String devcode; + @TableField("devtype_id") + private Long devtypeId; + @TableField("is_send") + private String isSend; + private String longitude; + private String latitude; + @TableField("install_height") + private String installHeight; + private String iccid; + private Long imei; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public Long getImei() { + return imei; + } + + public void setImei(Long imei) { + this.imei = imei; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Device{" + + "id=" + id + + ", batchId=" + batchId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", isSend=" + isSend + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", installHeight=" + installHeight + + ", iccid=" + iccid + + ", imei=" + imei + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java new file mode 100644 index 0000000..870c36f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_payments") +public class Payments extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @TableField("paytime") + private Date paytime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getPaytime() { + return paytime; + } + + public void setPaytime(Date paytime) { + this.paytime = paytime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Payments{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", paytime=" + paytime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java new file mode 100644 index 0000000..ae6b585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -0,0 +1,285 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_device_type") +public class ProductDeviceType extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 产品名称 + */ + @TableField("product_name") + private String productName; + /** + * 产品型号 + */ + @TableField("product_model") + private String productModel; + + /** + * 通讯版本号 + */ + @TableField("communication_version") + private String communicationVersion; + + /** + * 产品类型 + */ + @TableField("product_type") + private String productType; + + /** + * 整机版本号 + */ + @TableField("machine_version") + private String machineVersion; + /** + * 硬件版本号 + */ + @TableField("hardware_version") + private String hardwareVersion; + /** + * 软件版本号 + */ + @TableField("software_version") + private String softwareVersion; + /** + * 设计归档 + */ + @TableField("design_archive") + private String designArchive; + /** + * 批产归档 + */ + @TableField("batch_filing") + private String batchFiling; + /** + * 状态 + */ + @TableField("status") + private Integer status; + /** + * 性能指标 + */ + @TableField("kpi") + private String kpi; + /** + * 批产负责人 + */ + @TableField("principal") + private String principal; + /** + * 定额汇总表 + */ + @TableField("quota_summary") + private String quotaSummary; + + /** + * 权属部门 + */ + @TableField("deptid") + private String deptid; + + /** + * 备注 + */ + @TableField("descn") + private String descn; + + @TableField("createtime") + private Date createtime; + + + @TableField(exist = false) + private String statusFmt; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } + + public String getMachineVersion() { + return machineVersion; + } + + public void setMachineVersion(String machineVersion) { + this.machineVersion = machineVersion; + } + + public String getHardwareVersion() { + return hardwareVersion; + } + + public void setHardwareVersion(String hardwareVersion) { + this.hardwareVersion = hardwareVersion; + } + + public String getSoftwareVersion() { + return softwareVersion; + } + + public void setSoftwareVersion(String softwareVersion) { + this.softwareVersion = softwareVersion; + } + + public String getDesignArchive() { + return designArchive; + } + + public void setDesignArchive(String designArchive) { + this.designArchive = designArchive; + } + + public String getBatchFiling() { + return batchFiling; + } + + public void setBatchFiling(String batchFiling) { + this.batchFiling = batchFiling; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getKpi() { + return kpi; + } + + public void setKpi(String kpi) { + this.kpi = kpi; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public String getQuotaSummary() { + return quotaSummary; + } + + public void setQuotaSummary(String quotaSummary) { + this.quotaSummary = quotaSummary; + } + + public String getStatusFmt() { + return statusFmt; + } + + public void setStatusFmt(String statusFmt) { + this.statusFmt = statusFmt; + } + + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getProductType() { + return productType; + } + + public void setProductType(String productType) { + this.productType = productType; + } + + public String getCommunicationVersion() { + return communicationVersion; + } + + public void setCommunicationVersion(String communicationVersion) { + this.communicationVersion = communicationVersion; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductDeviceType{" + + "id=" + id + + ", productName=" + productName + + ", productModel=" + productModel + + ", machineVersion=" + machineVersion + + ", hardwareVersion=" + hardwareVersion + + ", softwareVersion=" + softwareVersion + + ", designArchive=" + designArchive + + ", batchFiling=" + batchFiling + + ", status=" + status + + ", kpi=" + kpi + + ", principal=" + principal + + ", quotaSummary=" + quotaSummary + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java new file mode 100644 index 0000000..b0fd924 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java @@ -0,0 +1,187 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_factory_information") +public class ProductFactoryInformation extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 厂家名称 + */ + @TableField("name") + private String name; + /** + * 厂家联系人 + */ + @TableField("person_name") + private String personName; + /** + * 地址 + */ + @TableField("address") + private String address; + /** + * 电话 + */ + @TableField("phone") + private String phone; + /** + * 开户行 + */ + @TableField("bank") + private String bank; + /** + * 税号 + */ + @TableField("tax_number") + private String taxNumber; + /** + * 在产设备 + */ + @TableField("producting_device") + private String productingDevice; + /** + * 设备报价表 + */ + @TableField("equipment_quotation") + private String equipmentQuotation; + + @TableField("createtime") + private Date createtime =new Date(); + + @TableField("deptid") + private String deptid; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPersonName() { + return personName; + } + + public void setPersonName(String personName) { + this.personName = personName; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getBank() { + return bank; + } + + public void setBank(String bank) { + this.bank = bank; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getProductingDevice() { + return productingDevice; + } + + public void setProductingDevice(String productingDevice) { + this.productingDevice = productingDevice; + } + + public String getEquipmentQuotation() { + return equipmentQuotation; + } + + public void setEquipmentQuotation(String equipmentQuotation) { + this.equipmentQuotation = equipmentQuotation; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductFactoryInformation{" + + "id=" + id + + ", name=" + name + + ", personName=" + personName + + ", address=" + address + + ", phone=" + phone + + ", bank=" + bank + + ", taxNumber=" + taxNumber + + ", productingDevice=" + productingDevice + + ", equipmentQuotation=" + equipmentQuotation + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java new file mode 100644 index 0000000..00cbc92 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -0,0 +1,99 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@TableName("product_project") +public class Project extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_name") + private String projectName; + @TableField("project_simple_name") + private String projectSimpleName; + @TableField("project_manager") + private String projectManager; + private String descn; + @TableField("createtime") + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getProjectManager() { + return projectManager; + } + + public void setProjectManager(String projectManager) { + this.projectManager = projectManager; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Project{" + + "id=" + id + + ", projectName=" + projectName + + ", projectSimpleName=" + projectSimpleName + + ", projectManager=" + projectManager + + ", descn=" + descn + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java new file mode 100644 index 0000000..658c2e1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java @@ -0,0 +1,126 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_reimburse") +public class Reimburse extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mi:ss") + @TableField("reimburse_time") + private Date reimburseTime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getReimburseTime() { + return reimburseTime; + } + + public void setReimburseTime(Date reimburseTime) { + this.reimburseTime = reimburseTime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Reimburse{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", reimburseTime=" + reimburseTime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java new file mode 100644 index 0000000..987efa7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java @@ -0,0 +1,141 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_task") +public class Task extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_id") + private Long projectId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("devmode_id") + private String devmodeId; + private Long devcount; + @TableField("delivery_time") + private Date deliveryTime; + private String demand; + private Date createtime; + @TableField(exist = false) + private String deliveryTimeFmt; + + @TableField(exist = false) + private Long taskId; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getProjectId() { + return projectId; + } + + public void setProjectId(Long projectId) { + this.projectId = projectId; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDevmodeId() { + return devmodeId; + } + + public void setDevmodeId(String devmodeId) { + this.devmodeId = devmodeId; + } + + public Long getDevcount() { + return devcount; + } + + public void setDevcount(Long devcount) { + this.devcount = devcount; + } + + public Date getDeliveryTime() { + return deliveryTime; + } + + public void setDeliveryTime(Date deliveryTime) { + this.deliveryTime = deliveryTime; + } + + public String getDemand() { + return demand; + } + + public void setDemand(String demand) { + this.demand = demand; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeliveryTimeFmt() { + return deliveryTimeFmt; + } + + public void setDeliveryTimeFmt(String deliveryTimeFmt) { + this.deliveryTimeFmt = deliveryTimeFmt; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Task{" + + "id=" + id + + ", projectId=" + projectId + + ", devtypeId=" + devtypeId + + ", devmodeId=" + devmodeId + + ", devcount=" + devcount + + ", deliveryTime=" + deliveryTime + + ", demand=" + demand + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java new file mode 100644 index 0000000..7785de5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface IAccountService extends IService { + + /** + * 根据用户名查用户 + * @param userName + * @return + */ + Account findUserByName(String userName); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java new file mode 100644 index 0000000..d8b5e87 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IContractService extends IService { + List selectPageList(Page page, String keyword1, String keyword2, String keyword3); + List reportExport(String keyword1, String keyword2, String keyword3); + void importContract( List contracts); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java new file mode 100644 index 0000000..0f2d6e0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IPaymentsService extends IService { + + boolean validate(Long proId,String money,String reorder); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java new file mode 100644 index 0000000..71490df --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -0,0 +1,62 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductDeviceTypeService extends IService { + + /** + * 批量导入设备类型列表 + * @param results + */ + void importDeviceType(List results); + + /** + * 导出列表 + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List reportExport(String keyword1,String keyword2,String keyword3); + + + /** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectPageDataScope(DataScope dataScope, Page page, + String keyword1, String keyword2, String keyword3); + + /** + * 获取在产的设备类型 + * @return + */ + List selectDeviceTypeList(); + + /** + * 根据产品型号获取产品 + * @param deviceModel + * @return + */ + ProductDeviceType selectDeviceTypeByModel(String deviceModel); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java new file mode 100644 index 0000000..455f60a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductFactoryInformationService extends IService { + /** + * 根据条件导出列表 + * @param keyword1 + * @param keyword2 + * @return + */ + List reportExport(String keyword1, String keyword2); + + + /** + * 导入 + * @param results + */ + void importDeviceType(List results); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java new file mode 100644 index 0000000..3c27bd1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface IProjectService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java new file mode 100644 index 0000000..ee0a55c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IReimburseService extends IService { + boolean validate(Long proId,String money,String reorder); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java new file mode 100644 index 0000000..09ce653 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.dao.AccountMapper; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.stereotype.Service; + +/** + *

+ * 管理员表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@Service +public class AccountServiceImpl extends ServiceImpl implements IAccountService { + + @Override + public Account findUserByName(String userName) { + + EntityWrapper userEntityWrapper = new EntityWrapper<>(); + userEntityWrapper.eq("name",userName); + userEntityWrapper.eq("status","1"); + return this.selectOne(userEntityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java new file mode 100644 index 0000000..dd04da0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java @@ -0,0 +1,138 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.shiro.ShiroUser; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ContractMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IPaymentsService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ContractServiceImpl extends ServiceImpl implements IContractService { + @Autowired + private IPaymentsService paymentsService; + @Autowired + private ICommonPermissionService permissionService; + @Autowired + private IAccountService userService; + @Value("${casic.producerName}") + private String producerName; + @Value("${casic.repairName}") + private String repairName; + + @Override + public List selectPageList(Page page, String keyword1, String keyword2, String keyword3) { + +// EntityWrapper query = new EntityWrapper<>(); +// if (ToolUtil.isNotEmpty(keyword1)) { +// query.like("contract_factory", keyword1); +// } +// if (ToolUtil.isNotEmpty(keyword3)) { +// query.like("contract_number", keyword3); +// } +// List contractList = this.selectPage(page, query).getRecords(); +// contractList.forEach(contract -> { +// contract.setPaymentStatus(getPaymentStatus(contract)); +// String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" +// + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" +// + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); +// contract.setNetFlow(netFlowStr); +// +// }); +// return contractList; + + + List contractList = new ArrayList<>(); + DataScope dataScope = permissionService.getCurrUserDataScope(); + ShiroUser currentUser = permissionService.getCurrLoginUser(); + if (currentUser.getRoleTips().contains(producerName) || currentUser.getRoleTips().contains(repairName)) { + contractList = this.baseMapper.findContractList(dataScope,page, currentUser.getName(), keyword1, keyword2, keyword3); + } else { + contractList = this.baseMapper.findContractList(dataScope,page, "", keyword1, keyword2, keyword3); + } + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + + }); + return contractList; + } + + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + + + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("contractFactory", keyword1); + } + if (ToolUtil.isNotEmpty(keyword3)) { + query.like("contract_number", keyword3); + } + + List contractList = this.selectList(query); + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); +// permissionService.findInDictByCode("applyStatus") + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + }); + + return contractList; + } + + @Override + public void importContract(List contracts) { + contracts.forEach(contract -> { + EntityWrapper query = new EntityWrapper<>(); + query.eq("contract_number", contract.getContractNumber()); + this.delete(query); + Account user = userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); + this.insert(contract); + }); + } + + public String getPaymentStatus(Contract contract) { + Map paraMap = new HashMap<>(); + paraMap.put("pro_id", contract.getId()); + List paymentsList = paymentsService.selectByMap(paraMap); + float sum = 0; + for (Payments payments : paymentsList) { + sum = sum + (ToolUtil.isNotEmpty(payments.getMoney()) ? Float.parseFloat(payments.getMoney()) : 0); + } + DecimalFormat df = new DecimalFormat("0"); + return sum + "," + df.format(100 * sum / Float.valueOf(contract.getContractAmount())) + "%"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java new file mode 100644 index 0000000..0c125d8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PaymentsMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class PaymentsServiceImpl extends ServiceImpl implements IPaymentsService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money,String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List paymentsList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Payments payments : paymentsList) { + if(reorder.equals(payments.getReorder())) continue; + total += ToolUtil.isNotEmpty(payments.getMoney()) ? + Long.valueOf(payments.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java new file mode 100644 index 0000000..ac6d447 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductDeviceTypeMapper; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.swing.text.html.parser.Entity; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductDeviceTypeServiceImpl extends ServiceImpl implements IProductDeviceTypeService { + + @Autowired + private ICommonPermissionService permissionService; + + @Transactional(rollbackFor = Exception.class) + @Override + public void importDeviceType(List results) { + + for (ProductDeviceType productDeviceType : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + this.baseMapper.delete(wrapper); + this.baseMapper.insert(productDeviceType); + } + } + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + wrapper.like("principal", keyword3); + } + List productDeviceTypes = this.selectList(wrapper); + for (ProductDeviceType productDeviceType : productDeviceTypes) { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + } + return productDeviceTypes; + } + + @Override + public List selectPageDataScope(DataScope dataScope, Page page, String keyword1, String keyword2, String keyword3) { + + List productDeviceTypeList = this.baseMapper.selectDataScopePage(dataScope, page, keyword1, keyword2, keyword3); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + return productDeviceTypeList; + + } + + @Override + public List selectDeviceTypeList() { + return this.baseMapper.selectDeviceTypeList(); + } + + + @Override + public ProductDeviceType selectDeviceTypeByModel(String deviceModel) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("product_model",deviceModel); + return this.selectOne(entityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java new file mode 100644 index 0000000..efe4410 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java @@ -0,0 +1,50 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductFactoryInformationMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductFactoryInformationServiceImpl extends ServiceImpl implements IProductFactoryInformationService { + + @Override + public List reportExport(String keyword1, String keyword2) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.like("producting_device", keyword2); + } + List productFactoryInformations = this.selectList(wrapper); + + return productFactoryInformations; + } + + + @Transactional(rollbackFor=Exception.class) + @Override + public void importDeviceType(List results) { + for (ProductFactoryInformation productFactoryInformation : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + delete(wrapper); + this.baseMapper.insert(productFactoryInformation); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java new file mode 100644 index 0000000..34655b0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.dao.ProjectMapper; +import com.casic.missiles.modular.system.service.IProjectService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@Service +public class ProjectServiceImpl extends ServiceImpl implements IProjectService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java new file mode 100644 index 0000000..5e8b77b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java @@ -0,0 +1,48 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.dao.ReimburseMapper; +import com.casic.missiles.modular.system.service.IReimburseService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ReimburseServiceImpl extends ServiceImpl implements IReimburseService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money, String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List reimburseList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Reimburse reimburse : reimburseList) { + if (reorder.equals(reimburse.getReorder())) continue; + total += ToolUtil.isNotEmpty(reimburse.getMoney()) ? + Long.valueOf(reimburse.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java new file mode 100644 index 0000000..d5ffadb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java @@ -0,0 +1,235 @@ +package com.casic.missiles.modular.system.util; + +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; + +import java.util.*; + +/** + * @author test203 + * @since 2020-04-06 + */ +public class DeviceUtil { + private final static String factoryCode = "20"; + private final static String wellExcludeCode = "4120"; + private final static String loraDevice = "A"; + private static Map devTypeCountHashMap = new HashMap(); + + static { + devTypeCountHashMap.put("电子标识器", 99999L); + devTypeCountHashMap.put("井盖状态监测仪", 65534L); + devTypeCountHashMap.put("灯箱控制器", 65535L); + devTypeCountHashMap.put("单灯控制器(单路)", 65535L); + devTypeCountHashMap.put("单灯控制器(双路)", 65535L); + devTypeCountHashMap.put("数据集中器", 255L); + devTypeCountHashMap.put("有害气体监测仪", 999L); + } + + public static List createDevCodes(ProductDeviceType deviceType, List batches) { + List deviceList = new ArrayList<>(); + try { + if ("电子标识器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 年份XX 批次号XX 编号XXXXX + String devCode = deviceType.getProductType() + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%05d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("井盖状态监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + String wellCode4 = String.format("%04x", i); + if (wellExcludeCode.equals(wellCode4)) { + continue; + } + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + wellCode4; + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("灯箱控制器".equals(deviceType.getProductName()) || + "单灯控制器(单路)".equals(deviceType.getProductName()) || + "单灯控制器(双路)".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("数据集中器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("有害气体监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型WS2000X- 年份XX 批次序号XXXX 编号XXX + String devCode = deviceType.getProductType() + + getYearFmt() + + String.format("%04d", batch.getBatchNumber()) + + String.format("%03d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } + //其他设备类型分lora和非lora版本 + else { + if (loraDevice.equals(deviceType.getCommunicationVersion())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } else { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return deviceList; + } + + + public static Map validate(ProductDeviceType deviceType, List batches, Task task) { + Map resultMap = new HashMap<>(); + boolean success = true; + String msg = ""; + long devSum = null != task ? task.getDevcount() : 0; + long devcount = 0, batchCountMax; + batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? + 0 : devTypeCountHashMap.get(deviceType.getProductName()); + if (0 == batchCountMax) { + if (deviceType.getProductModel().indexOf(loraDevice) + == deviceType.getProductModel().length() - 1) { + batchCountMax = 255; + } else { + batchCountMax = 9999; + } + } + for (Batch batch : batches) { + if (batch.getBatchCount() > batchCountMax) { + success = false; + msg = batch.getBatchNumber() + "批次号数量超过了最大范围" + batchCountMax; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + devcount += batch.getBatchCount(); + } + if (devcount != devSum) { + return returnMsg(); + } + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + + public static Map returnMsg() { + Map resultMap = new HashMap<>(); + resultMap.put("success", false); + resultMap.put("msg", "所有批次数量之和与任务中设备数量不一致!"); + return resultMap; + } + + /** + * 获取编码中的年份 + * + * @return + */ + public static String getYearFmt() { + + return DateUtil.format(new Date(), "yyyy").substring(2); + } + + + /** + * 比较2个map + * + * @param batchMap + * @param batchMap1 + * @return + */ + public static boolean equalMap(Map batchMap, Map batchMap1) { + if (batchMap.size() != batchMap1.size()) { + return false; + } + Iterator iter1 = batchMap.keySet().iterator(); + while (iter1.hasNext()) { + Long map1key = iter1.next(); + String map1value = batchMap.get(map1key).toString(); + String map2value = batchMap1.get(map1key).toString(); + if (!map1value.equals(map2value)) { + return false; + } + } + return true; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java new file mode 100644 index 0000000..33c3535 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java @@ -0,0 +1,43 @@ +package com.casic.missiles.modular.system.util; + +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; + +public class FileUtil { + public static File createFile(String path) throws IOException { + File file = new File(path); + if (!file.exists()) { + file.getParentFile().mkdirs(); + file.createNewFile(); + } + return file; + } + + + public static void downloadLocalFile(HttpServletResponse response,String path, String fileName) throws IOException { + File file = new File(path); + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", "attachment; filename=\"" + URLEncoder.encode(fileName, "UTF-8") + "\""); + response.setContentLength((int) file.length()); + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java new file mode 100644 index 0000000..341d3d1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.task.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.task.service.IBatchService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 批次控制器 + * + * @author dev + * @Date 2020-03-27 15:29:55 + */ +@Controller +@RequestMapping("/batch") +public class BatchController extends BaseController { + + + @Autowired + private IBatchService batchService; + + + /** + * 获取批次列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return batchService.selectList(null); + } + + /** + * 获取批次分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = batchService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增批次并生成设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + @Transactional + public Object add(@RequestBody List batches, Task task) { + + return batchService.addBatchAndDevices(batches,task); + + } + + /** + * 删除批次 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String batchId) { + batchService.deleteById(batchId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("batchIds") List batchIds) { + batchService.deleteBatchIds(batchIds); + return ResponseData.success(); + } + + /** + * 修改批次 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Batch batch) { + batchService.updateById(batch); + return ResponseData.success(); + } + + + /** + * 根据设备类型id + * 查找批次号 + */ + @RequestMapping(value = "/getBatchNumber") + @ResponseBody + public Object getBatchNumber(Long devtypeId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.orderBy("id", false); + Batch batch = batchService.selectOne(entityWrapper); + return ResponseData.success(200, "", batch != null ? batch.getBatchNumber() + 1 : 1); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java new file mode 100644 index 0000000..f463168 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java @@ -0,0 +1,102 @@ +package com.casic.missiles.modular.task.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * 任务控制器 + * + * @author dev + * @Date 2020-03-27 15:28:26 + */ +@Controller +@RequestMapping("/task") +public class TaskController extends BaseController { + + + @Autowired + private ITaskService taskService; + + + /** + * 获取任务列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return taskService.selectList(null); + } + + /** + * 获取任务分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = taskService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增任务 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + taskService.insert(task); + return ResponseData.success(); + } + + /** + * 删除任务 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String taskId) { + taskService.deleteById(taskId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("taskIds") List taskIds) { + taskService.deleteBatchIds(taskIds); + return ResponseData.success(); + } + + /** + * 修改任务 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + taskService.updateById(task); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java new file mode 100644 index 0000000..04c7ef8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.task.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IBatchService extends IService { + + /** + * 添加批次和生成设备 + * @param batches + * @param task + * @return + */ + ResponseData addBatchAndDevices(List batches, Task task); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java new file mode 100644 index 0000000..50e1d37 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.task.service; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface ITaskService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java new file mode 100644 index 0000000..a435e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dao.BatchMapper; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.DeviceUtil; +import com.casic.missiles.modular.task.service.IBatchService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class BatchServiceImpl extends ServiceImpl implements IBatchService { + + @Autowired + private IProductDeviceTypeService deviceTypeService; + @Autowired + private IDeviceService deviceService; + + @Transactional(rollbackFor=Exception.class) + @Override + public ResponseData addBatchAndDevices(List batches, Task task) { + //提交前先验证是否已经存在,若存在且批次号或每批数量改变先删除 + try { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("task_id", task.getTaskId()); + List batchList = this.selectList(entityWrapper); + Map batchMap= new HashMap<>(); + Map batchMap1= new HashMap<>(); + List batchIdlist = new ArrayList<>(); + for (Batch batch : batches) { + batchMap.put(batch.getBatchNumber(),batch.getBatchCount()); + batch.setTaskId(task.getTaskId()); + batch.setDevtypeId(task.getDevtypeId()); + batchIdlist.add(batch.getId()); + } + for (Batch batch : batchList) { + batchMap1.put(batch.getBatchNumber(),batch.getBatchCount()); + } + + //若批次号和数量不变只更新批次表 + if (DeviceUtil.equalMap(batchMap, batchMap1)) { + this.insertOrUpdateBatch(batches); + } + //若批次号和数量更新,更新设备表(删除批次相关的设备后,写入新的设备) + else { + + //验证设备数量是否合格 + ProductDeviceType deviceType = deviceTypeService.selectDeviceTypeByModel(task.getDevmodeId()); + Map resultMap = DeviceUtil.validate(deviceType, batches, task); + if (!Boolean.valueOf(resultMap.get("success").toString())) { + return ResponseData.error(400, resultMap.get("msg").toString()); + } + //删除批次 + EntityWrapper batchEntityWrapper = new EntityWrapper<>(); + batchEntityWrapper.eq("task_id", task.getTaskId()); + this.delete(batchEntityWrapper); + //删除设备 + EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); + deviceEntityWrapper.in("batch_id", batchIdlist); + deviceEntityWrapper.eq("devtype_id",task.getDevtypeId()); + deviceService.delete(deviceEntityWrapper); + + //写入批次 + this.insertBatch(batches); + //写入设备 + List deviceList = DeviceUtil.createDevCodes(deviceType, batches); + deviceService.insertBatch(deviceList); + } + } catch (Exception e) { + e.printStackTrace(); + } + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java new file mode 100644 index 0000000..fac60bb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.dao.TaskMapper; +import com.casic.missiles.modular.task.service.ITaskService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class TaskServiceImpl extends ServiceImpl implements ITaskService { + +} diff --git a/casic-web/pom.xml b/casic-web/pom.xml new file mode 100644 index 0000000..f9f1c84 --- /dev/null +++ b/casic-web/pom.xml @@ -0,0 +1,300 @@ + + + 4.0.0 + + com.casic + casic-product-device + ../pom.xml + 1.0.0-SNAPSHOT + + casic-web + ${pro.version} + jar + casic-web + casic web启动入口 + + + + dev + + true + + + dev + true + 3600 + 3600 + + + + + test + + test + false + 180 + 180 + + + + + prod + + prod + true + 3600 + 3600 + + + + + + + + + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-admin-core + ${casic.version} + + + com.casic + casic-admin-area + ${casic.version} + + + + + + + + + + com.casic + casic-device + ${pro.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-cache + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + org.springframework.boot + spring-boot-devtools + true + + + + + + org.apache.shiro + shiro-core + + + slf4j-api + org.slf4j + + + + + org.apache.shiro + shiro-spring + + + org.apache.shiro + shiro-ehcache + + + slf4j-api + org.slf4j + + + + + org.ehcache + ehcache + ${ehcache.version} + + + + commons-io + commons-io + + + com.github.penggle + kaptcha + + + com.google.zxing + core + + + com.ibeetl + beetl + + + org.apache.commons + commons-lang3 + + + com.oracle + ojdbc6 + ${oracle.version} + + + org.codehaus.groovy + groovy-all + true + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + org.apache.maven.plugins + maven-jar-plugin + + + + /config/** + **/MockController.class + + + + + + + + + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + maven-assembly-plugin + + + false + + src/main/build/package.xml + + + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-resources-plugin + 2.6 + + + ${resource.delimiter} + + true + + + + copy-resources + validate + + copy-resources + + + ${project.build.outputDirectory} + + + + src/main/resources + true + + + + + + + + + + src/main/webapp + + + src/main/resources + + + src/main/java + + **/*.xml + + true + + + + + diff --git "a/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" "b/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" new file mode 100644 index 0000000..9656df2 --- /dev/null +++ "b/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" @@ -0,0 +1,4 @@ +@echo off +title 智慧城管 +java -jar guns-web-1.0.0-SNAPSHOT.jar +@pause diff --git a/casic-web/src/main/build/package.xml b/casic-web/src/main/build/package.xml new file mode 100644 index 0000000..68b7576 --- /dev/null +++ b/casic-web/src/main/build/package.xml @@ -0,0 +1,26 @@ + + + package + + zip + + true + + + src/main/bin + / + + + src/main/resources/config + / + + + ${project.build.directory} + / + + *.jar + + + + + \ No newline at end of file diff --git a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java new file mode 100644 index 0000000..0b0c3fb --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java @@ -0,0 +1,35 @@ +package com.casic.missiles; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * SpringBoot方式启动类 + * + * @author casic + * @Date 2017/5/21 12:06 + */ +@SpringBootApplication +@ServletComponentScan +@EnableTransactionManagement(proxyTargetClass = true) +public class CasicApplication { + + private static final Logger logger = LoggerFactory.getLogger(CasicApplication.class); + + public static void main(String[] args){ + SpringApplication.run(CasicApplication.class, args); + logger.info("GunsApplication is success!"); + + } + +} + + + + + + diff --git a/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java new file mode 100644 index 0000000..269025c --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java @@ -0,0 +1,18 @@ +package com.casic.missiles; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.support.SpringBootServletInitializer; + +/** + * Guns Web程序启动类 + * + * @author fengshuonan + * @date 2017-05-21 9:43 + */ +public class CasicServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(CasicApplication.class); + } +} diff --git a/casic-web/src/main/java/com/casic/missiles/controller/MockController.java b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java new file mode 100644 index 0000000..a8285e8 --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java @@ -0,0 +1,83 @@ +package com.casic.missiles.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.log.LogManager; +import com.casic.missiles.core.log.factory.LogTaskFactory; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.core.shiro.ShiroUser; +import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.contant.PermissionContant; +import com.casic.missiles.modular.system.dto.LoginResult; +import org.apache.commons.lang3.StringUtils; +import org.apache.shiro.authc.UsernamePasswordToken; +import org.apache.shiro.subject.Subject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.servlet.http.HttpServletRequest; +import java.security.NoSuchAlgorithmException; +import java.util.Map; + +import static com.casic.missiles.core.support.HttpKit.getIp; + +/** + * 仅为mock登录使用 + */ +@Controller +@RequestMapping("/route") +public class MockController extends BaseController { + private static final Logger logger = LoggerFactory.getLogger(MockController.class); + + /** + * 获取mockToken + */ + @GetMapping("/mockToken") + @ResponseBody + public Object subdepts(HttpServletRequest request, String username, String password) { + ShiroKit.getSession().setAttribute(PermissionContant.IS_APP, false); + SuccessResponseData resultData = new SuccessResponseData(); + if (ToolUtil.isOneEmpty(username, password)) { + username = "admin"; + password = "1111111a"; + } + Subject currentUser = ShiroKit.getSubject(); + + try { + Map key = RSAUtils.genKeyPair(); + ShiroKit.getSession().setAttribute(PermissionContant.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey)); + logger.info("秘钥:".concat(key.get(RSAUtils.RSAPublicKey))); + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + + + UsernamePasswordToken token = new UsernamePasswordToken(username, password.toCharArray()); + token.setRememberMe(false); + try { + currentUser.login(token); + } catch (Exception e) { + e.printStackTrace(); + } + ShiroUser shiroUser = ShiroKit.getUser(); + super.getSession().setAttribute("shiroUser", shiroUser); + super.getSession().setAttribute("username", shiroUser.getAccount()); + + super.getSession().setAttribute(PermissionContant.SESSION_KEY, shiroUser.getId()); + + LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp())); + + ShiroKit.getSession().setAttribute("sessionFlag", true); + resultData.setData(new LoginResult(ShiroKit.getSession().getId().toString(), null)); + resultData.setMessage("登录成功"); + return resultData; + } + +} diff --git a/casic-web/src/main/resources/application.yml b/casic-web/src/main/resources/application.yml new file mode 100644 index 0000000..70cc33b --- /dev/null +++ b/casic-web/src/main/resources/application.yml @@ -0,0 +1,18 @@ +########################################################## +################## 所有profile共有的配置 ################# +########################################################## +spring: + profiles: + active: @activatedProperties@ + datasource: + driver-class-name: com.mysql.jdbc.Driver + jms: + pub-sub-domain: true + aop: + proxy-target-class: true #false为启用jdk默认动态代理,true为cglib动态代理 +################### mybatis-plus配置 ################### +################### guns配置 ################### +casic: + kaptcha-open: true #是否开启登录时验证码 (true/false) + file-upload-path: d:/tmp #文件上传目录(不配置的话为java.io.tmpdir目录) + nologin-urls: /user/login,/kaptcha,/config/baseConfig \ No newline at end of file diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml new file mode 100644 index 0000000..99216e3 --- /dev/null +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -0,0 +1,24 @@ +server: + port: 8083 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://139.198.17.115:3000/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: root + initial-size: 2 + min-idle: 1 +#flowable数据源和多数据源配置 +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /user/login,/user/appLogin,/kaptcha,/config/baseConfig,/route/mockToken,/process/processDiagram,/enterprise2/list,/enterprise2/report,/enterprise3/list,enterprise3/report + file-upload-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\upload\ + file-download-path: D:\tmp\ + producerName: producer + repairName: repair +logging: + level.root: info + level.com.casic: debug + path: logs/ + file: missiles.log + diff --git a/casic-web/src/main/resources/config/application-prod.yml b/casic-web/src/main/resources/config/application-prod.yml new file mode 100644 index 0000000..d54ce16 --- /dev/null +++ b/casic-web/src/main/resources/config/application-prod.yml @@ -0,0 +1,20 @@ +server: + port: 8093 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://139.198.17.115:3000/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: root + initial-size: 2 + min-idle: 1 +#flowable数据源和多数据源配置 +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /user/login,/user/appLogin,/kaptcha,/config/baseConfig,/route/mockToken,/process/processDiagram + file-upload-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\upload +logging: + level.root: info + level.com.casic: debug + path: logs/ + file: missiles.log \ No newline at end of file diff --git a/casic-web/src/main/resources/config/application-test.yml b/casic-web/src/main/resources/config/application-test.yml new file mode 100644 index 0000000..40ec8f5 --- /dev/null +++ b/casic-web/src/main/resources/config/application-test.yml @@ -0,0 +1,21 @@ +server: + port: 8093 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://139.198.17.115:3000/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: root + initial-size: 2 + min-idle: 1 +#flowable数据源和多数据源配置 +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /user/login,/user/appLogin,/kaptcha,/config/baseConfig,/route/mockToken,/process/processDiagram + file-upload-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\upload +logging: + level.root: info + level.com.casic: debug + path: logs/ + file: missiles.log + diff --git a/casic-web/src/main/resources/ehcache.xml b/casic-web/src/main/resources/ehcache.xml new file mode 100644 index 0000000..78c82d8 --- /dev/null +++ b/casic-web/src/main/resources/ehcache.xml @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + diff --git a/casic-web/src/main/resources/excel/contractImp.xlsx b/casic-web/src/main/resources/excel/contractImp.xlsx new file mode 100644 index 0000000..71e3f4a --- /dev/null +++ b/casic-web/src/main/resources/excel/contractImp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/contractList.xlsx b/casic-web/src/main/resources/excel/contractList.xlsx new file mode 100644 index 0000000..19dda44 --- /dev/null +++ b/casic-web/src/main/resources/excel/contractList.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/devTypeImp.xlsx b/casic-web/src/main/resources/excel/devTypeImp.xlsx new file mode 100644 index 0000000..516a5a6 --- /dev/null +++ b/casic-web/src/main/resources/excel/devTypeImp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/deviceTypeList.xlsx b/casic-web/src/main/resources/excel/deviceTypeList.xlsx new file mode 100644 index 0000000..f4121d8 --- /dev/null +++ b/casic-web/src/main/resources/excel/deviceTypeList.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/factoryImp.xlsx b/casic-web/src/main/resources/excel/factoryImp.xlsx new file mode 100644 index 0000000..1054f71 --- /dev/null +++ b/casic-web/src/main/resources/excel/factoryImp.xlsx Binary files differ diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java new file mode 100644 index 0000000..4670df3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 集中器相关日志 + */ +public class ProjectDict extends AbstractDictMap { + public static final String PROJECT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + @Override + public void init() { + put("projectName","项目名称"); + put("projectSimpleName","项目简称"); + put("projectManager","项目经理"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java new file mode 100644 index 0000000..7981a17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dto; + +/** + * 用于设备类型展示 + * @author test203 + * @date 2020-04-03 + */ +public class DeviceTypeDto { + private Long id; + private String productName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java new file mode 100644 index 0000000..f254585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java @@ -0,0 +1,361 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.math.BigDecimal; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; + +/** + *

+ * 管理员表 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@TableName("sys_user") +public class Account extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + /** + * 头像 + */ + private String avatar; + /** + * 账号 + */ + private String account; + /** + * 密码 + */ + private String password; + /** + * md5密码盐 + */ + private String salt; + /** + * 名字 + */ + private String name; + /** + * 生日 + */ + private Date birthday; + /** + * 性别(1:男 2:女) + */ + private String sex; + /** + * 电子邮件 + */ + private String email; + /** + * 电话 + */ + private String phone; + /** + * 角色id + */ + private String roleid; + /** + * 部门id + */ + private Long deptid; + /** + * 状态(1:启用 2:冻结 3:删除) + */ + private String status; + /** + * 创建时间 + */ + private Date createtime; + /** + * 保留字段 + */ + private Integer version; + private String targetid; + private String targetname; + @TableField("password_sync") + private String passwordSync; + @TableField("IS_SYNC") + private Integer isSync; + private String simplename; + /** + * 同步组织ID + */ + @TableField("TARGET_DEPTID_SYNC") + private String targetDeptidSync; + @TableField("LOGIN_IP") + private String loginIp; + @TableField("LOGIN_MAC") + private String loginMac; + /** + * 最后在线时间 + */ + @TableField("LAST_TIME") + private Date lastTime; + /** + * 经度 + */ + @TableField("POSITION_LNG") + private BigDecimal positionLng; + /** + * 纬度 + */ + @TableField("POSITION_LAT") + private BigDecimal positionLat; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt() { + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getRoleid() { + return roleid; + } + + public void setRoleid(String roleid) { + this.roleid = roleid; + } + + public Long getDeptid() { + return deptid; + } + + public void setDeptid(Long deptid) { + this.deptid = deptid; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + public String getTargetid() { + return targetid; + } + + public void setTargetid(String targetid) { + this.targetid = targetid; + } + + public String getTargetname() { + return targetname; + } + + public void setTargetname(String targetname) { + this.targetname = targetname; + } + + public String getPasswordSync() { + return passwordSync; + } + + public void setPasswordSync(String passwordSync) { + this.passwordSync = passwordSync; + } + + public Integer getIsSync() { + return isSync; + } + + public void setIsSync(Integer isSync) { + this.isSync = isSync; + } + + public String getSimplename() { + return simplename; + } + + public void setSimplename(String simplename) { + this.simplename = simplename; + } + + public String getTargetDeptidSync() { + return targetDeptidSync; + } + + public void setTargetDeptidSync(String targetDeptidSync) { + this.targetDeptidSync = targetDeptidSync; + } + + public String getLoginIp() { + return loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getLoginMac() { + return loginMac; + } + + public void setLoginMac(String loginMac) { + this.loginMac = loginMac; + } + + public Date getLastTime() { + return lastTime; + } + + public void setLastTime(Date lastTime) { + this.lastTime = lastTime; + } + + public BigDecimal getPositionLng() { + return positionLng; + } + + public void setPositionLng(BigDecimal positionLng) { + this.positionLng = positionLng; + } + + public BigDecimal getPositionLat() { + return positionLat; + } + + public void setPositionLat(BigDecimal positionLat) { + this.positionLat = positionLat; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", avatar=" + avatar + + ", account=" + account + + ", password=" + password + + ", salt=" + salt + + ", name=" + name + + ", birthday=" + birthday + + ", sex=" + sex + + ", email=" + email + + ", phone=" + phone + + ", roleid=" + roleid + + ", deptid=" + deptid + + ", status=" + status + + ", createtime=" + createtime + + ", version=" + version + + ", targetid=" + targetid + + ", targetname=" + targetname + + ", passwordSync=" + passwordSync + + ", isSync=" + isSync + + ", simplename=" + simplename + + ", targetDeptidSync=" + targetDeptidSync + + ", loginIp=" + loginIp + + ", loginMac=" + loginMac + + ", lastTime=" + lastTime + + ", positionLng=" + positionLng + + ", positionLat=" + positionLat + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java new file mode 100644 index 0000000..81516b7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -0,0 +1,110 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_batch") +public class Batch extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_number") + private Long batchNumber; + @TableField("batch_count") + private Long batchCount; + @TableField("contract_id") + private Long contractId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("task_id") + private Long taskId; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(Long batchNumber) { + this.batchNumber = batchNumber; + } + + public Long getBatchCount() { + return batchCount; + } + + public void setBatchCount(Long batchCount) { + this.batchCount = batchCount; + } + + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Batch{" + + "id=" + id + + ", batchNumber=" + batchNumber + + ", batchCount=" + batchCount + + ", contractId=" + contractId + + ", taskId=" + taskId + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java new file mode 100644 index 0000000..893a1ed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -0,0 +1,186 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_contract") +public class Contract extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("contract_number") + private String contractNumber; + @TableField("contract_name") + private String contractName; + @TableField("contract_content") + private String contractContent; + @TableField("contract_amount") + private String contractAmount; + @TableField("external_project_apply") + private String externalProjectApply; + @TableField("external_contract_apply") + private String externalContractApply; + @TableField("principal") + private String principal; + @TableField("external_check_apply") + private String externalCheckApply; + @TableField("contract_factory") + private String contractFactory; + @TableField("createtime") + private Date createtime; + @TableField(exist = false) + private String paymentStatus; + @TableField(exist = false) + private String netFlow; + @TableField("deptid") + private String deptid; + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getContractName() { + return contractName; + } + + public void setContractName(String contractName) { + this.contractName = contractName; + } + + public String getContractContent() { + return contractContent; + } + + public void setContractContent(String contractContent) { + this.contractContent = contractContent; + } + + public String getContractAmount() { + return contractAmount; + } + + public void setContractAmount(String contractAmount) { + this.contractAmount = contractAmount; + } + + public String getExternalProjectApply() { + return externalProjectApply; + } + + public void setExternalProjectApply(String externalProjectApply) { + this.externalProjectApply = externalProjectApply; + } + + public String getExternalContractApply() { + return externalContractApply; + } + + public void setExternalContractApply(String externalContractApply) { + this.externalContractApply = externalContractApply; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalCheckApply() { + return externalCheckApply; + } + + public void setExternalCheckApply(String externalCheckApply) { + this.externalCheckApply = externalCheckApply; + } + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public String getContractFactory() { + return contractFactory; + } + + public void setContractFactory(String contractFactory) { + this.contractFactory = contractFactory; + } + + public String getNetFlow() { + return netFlow; + } + + public void setNetFlow(String netFlow) { + this.netFlow = netFlow; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Contract{" + + "contractNumber=" + contractNumber + + ", contractName=" + contractName + + ", contractContent=" + contractContent + + ", contractAmount=" + contractAmount + + ", externalProjectApply=" + externalProjectApply + + ", externalContractApply=" + externalContractApply + + ", principal=" + principal + + ", id=" + id + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java new file mode 100644 index 0000000..8718d91 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -0,0 +1,150 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_device") +public class Device extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_id") + private Long batchId; + private String devcode; + @TableField("devtype_id") + private Long devtypeId; + @TableField("is_send") + private String isSend; + private String longitude; + private String latitude; + @TableField("install_height") + private String installHeight; + private String iccid; + private Long imei; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public Long getImei() { + return imei; + } + + public void setImei(Long imei) { + this.imei = imei; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Device{" + + "id=" + id + + ", batchId=" + batchId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", isSend=" + isSend + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", installHeight=" + installHeight + + ", iccid=" + iccid + + ", imei=" + imei + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java new file mode 100644 index 0000000..870c36f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_payments") +public class Payments extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @TableField("paytime") + private Date paytime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getPaytime() { + return paytime; + } + + public void setPaytime(Date paytime) { + this.paytime = paytime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Payments{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", paytime=" + paytime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java new file mode 100644 index 0000000..ae6b585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -0,0 +1,285 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_device_type") +public class ProductDeviceType extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 产品名称 + */ + @TableField("product_name") + private String productName; + /** + * 产品型号 + */ + @TableField("product_model") + private String productModel; + + /** + * 通讯版本号 + */ + @TableField("communication_version") + private String communicationVersion; + + /** + * 产品类型 + */ + @TableField("product_type") + private String productType; + + /** + * 整机版本号 + */ + @TableField("machine_version") + private String machineVersion; + /** + * 硬件版本号 + */ + @TableField("hardware_version") + private String hardwareVersion; + /** + * 软件版本号 + */ + @TableField("software_version") + private String softwareVersion; + /** + * 设计归档 + */ + @TableField("design_archive") + private String designArchive; + /** + * 批产归档 + */ + @TableField("batch_filing") + private String batchFiling; + /** + * 状态 + */ + @TableField("status") + private Integer status; + /** + * 性能指标 + */ + @TableField("kpi") + private String kpi; + /** + * 批产负责人 + */ + @TableField("principal") + private String principal; + /** + * 定额汇总表 + */ + @TableField("quota_summary") + private String quotaSummary; + + /** + * 权属部门 + */ + @TableField("deptid") + private String deptid; + + /** + * 备注 + */ + @TableField("descn") + private String descn; + + @TableField("createtime") + private Date createtime; + + + @TableField(exist = false) + private String statusFmt; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } + + public String getMachineVersion() { + return machineVersion; + } + + public void setMachineVersion(String machineVersion) { + this.machineVersion = machineVersion; + } + + public String getHardwareVersion() { + return hardwareVersion; + } + + public void setHardwareVersion(String hardwareVersion) { + this.hardwareVersion = hardwareVersion; + } + + public String getSoftwareVersion() { + return softwareVersion; + } + + public void setSoftwareVersion(String softwareVersion) { + this.softwareVersion = softwareVersion; + } + + public String getDesignArchive() { + return designArchive; + } + + public void setDesignArchive(String designArchive) { + this.designArchive = designArchive; + } + + public String getBatchFiling() { + return batchFiling; + } + + public void setBatchFiling(String batchFiling) { + this.batchFiling = batchFiling; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getKpi() { + return kpi; + } + + public void setKpi(String kpi) { + this.kpi = kpi; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public String getQuotaSummary() { + return quotaSummary; + } + + public void setQuotaSummary(String quotaSummary) { + this.quotaSummary = quotaSummary; + } + + public String getStatusFmt() { + return statusFmt; + } + + public void setStatusFmt(String statusFmt) { + this.statusFmt = statusFmt; + } + + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getProductType() { + return productType; + } + + public void setProductType(String productType) { + this.productType = productType; + } + + public String getCommunicationVersion() { + return communicationVersion; + } + + public void setCommunicationVersion(String communicationVersion) { + this.communicationVersion = communicationVersion; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductDeviceType{" + + "id=" + id + + ", productName=" + productName + + ", productModel=" + productModel + + ", machineVersion=" + machineVersion + + ", hardwareVersion=" + hardwareVersion + + ", softwareVersion=" + softwareVersion + + ", designArchive=" + designArchive + + ", batchFiling=" + batchFiling + + ", status=" + status + + ", kpi=" + kpi + + ", principal=" + principal + + ", quotaSummary=" + quotaSummary + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java new file mode 100644 index 0000000..b0fd924 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java @@ -0,0 +1,187 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_factory_information") +public class ProductFactoryInformation extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 厂家名称 + */ + @TableField("name") + private String name; + /** + * 厂家联系人 + */ + @TableField("person_name") + private String personName; + /** + * 地址 + */ + @TableField("address") + private String address; + /** + * 电话 + */ + @TableField("phone") + private String phone; + /** + * 开户行 + */ + @TableField("bank") + private String bank; + /** + * 税号 + */ + @TableField("tax_number") + private String taxNumber; + /** + * 在产设备 + */ + @TableField("producting_device") + private String productingDevice; + /** + * 设备报价表 + */ + @TableField("equipment_quotation") + private String equipmentQuotation; + + @TableField("createtime") + private Date createtime =new Date(); + + @TableField("deptid") + private String deptid; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPersonName() { + return personName; + } + + public void setPersonName(String personName) { + this.personName = personName; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getBank() { + return bank; + } + + public void setBank(String bank) { + this.bank = bank; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getProductingDevice() { + return productingDevice; + } + + public void setProductingDevice(String productingDevice) { + this.productingDevice = productingDevice; + } + + public String getEquipmentQuotation() { + return equipmentQuotation; + } + + public void setEquipmentQuotation(String equipmentQuotation) { + this.equipmentQuotation = equipmentQuotation; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductFactoryInformation{" + + "id=" + id + + ", name=" + name + + ", personName=" + personName + + ", address=" + address + + ", phone=" + phone + + ", bank=" + bank + + ", taxNumber=" + taxNumber + + ", productingDevice=" + productingDevice + + ", equipmentQuotation=" + equipmentQuotation + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java new file mode 100644 index 0000000..00cbc92 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -0,0 +1,99 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@TableName("product_project") +public class Project extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_name") + private String projectName; + @TableField("project_simple_name") + private String projectSimpleName; + @TableField("project_manager") + private String projectManager; + private String descn; + @TableField("createtime") + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getProjectManager() { + return projectManager; + } + + public void setProjectManager(String projectManager) { + this.projectManager = projectManager; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Project{" + + "id=" + id + + ", projectName=" + projectName + + ", projectSimpleName=" + projectSimpleName + + ", projectManager=" + projectManager + + ", descn=" + descn + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java new file mode 100644 index 0000000..658c2e1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java @@ -0,0 +1,126 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_reimburse") +public class Reimburse extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mi:ss") + @TableField("reimburse_time") + private Date reimburseTime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getReimburseTime() { + return reimburseTime; + } + + public void setReimburseTime(Date reimburseTime) { + this.reimburseTime = reimburseTime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Reimburse{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", reimburseTime=" + reimburseTime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java new file mode 100644 index 0000000..987efa7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java @@ -0,0 +1,141 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_task") +public class Task extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_id") + private Long projectId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("devmode_id") + private String devmodeId; + private Long devcount; + @TableField("delivery_time") + private Date deliveryTime; + private String demand; + private Date createtime; + @TableField(exist = false) + private String deliveryTimeFmt; + + @TableField(exist = false) + private Long taskId; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getProjectId() { + return projectId; + } + + public void setProjectId(Long projectId) { + this.projectId = projectId; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDevmodeId() { + return devmodeId; + } + + public void setDevmodeId(String devmodeId) { + this.devmodeId = devmodeId; + } + + public Long getDevcount() { + return devcount; + } + + public void setDevcount(Long devcount) { + this.devcount = devcount; + } + + public Date getDeliveryTime() { + return deliveryTime; + } + + public void setDeliveryTime(Date deliveryTime) { + this.deliveryTime = deliveryTime; + } + + public String getDemand() { + return demand; + } + + public void setDemand(String demand) { + this.demand = demand; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeliveryTimeFmt() { + return deliveryTimeFmt; + } + + public void setDeliveryTimeFmt(String deliveryTimeFmt) { + this.deliveryTimeFmt = deliveryTimeFmt; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Task{" + + "id=" + id + + ", projectId=" + projectId + + ", devtypeId=" + devtypeId + + ", devmodeId=" + devmodeId + + ", devcount=" + devcount + + ", deliveryTime=" + deliveryTime + + ", demand=" + demand + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java new file mode 100644 index 0000000..7785de5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface IAccountService extends IService { + + /** + * 根据用户名查用户 + * @param userName + * @return + */ + Account findUserByName(String userName); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java new file mode 100644 index 0000000..d8b5e87 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IContractService extends IService { + List selectPageList(Page page, String keyword1, String keyword2, String keyword3); + List reportExport(String keyword1, String keyword2, String keyword3); + void importContract( List contracts); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java new file mode 100644 index 0000000..0f2d6e0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IPaymentsService extends IService { + + boolean validate(Long proId,String money,String reorder); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java new file mode 100644 index 0000000..71490df --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -0,0 +1,62 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductDeviceTypeService extends IService { + + /** + * 批量导入设备类型列表 + * @param results + */ + void importDeviceType(List results); + + /** + * 导出列表 + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List reportExport(String keyword1,String keyword2,String keyword3); + + + /** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectPageDataScope(DataScope dataScope, Page page, + String keyword1, String keyword2, String keyword3); + + /** + * 获取在产的设备类型 + * @return + */ + List selectDeviceTypeList(); + + /** + * 根据产品型号获取产品 + * @param deviceModel + * @return + */ + ProductDeviceType selectDeviceTypeByModel(String deviceModel); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java new file mode 100644 index 0000000..455f60a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductFactoryInformationService extends IService { + /** + * 根据条件导出列表 + * @param keyword1 + * @param keyword2 + * @return + */ + List reportExport(String keyword1, String keyword2); + + + /** + * 导入 + * @param results + */ + void importDeviceType(List results); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java new file mode 100644 index 0000000..3c27bd1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface IProjectService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java new file mode 100644 index 0000000..ee0a55c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IReimburseService extends IService { + boolean validate(Long proId,String money,String reorder); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java new file mode 100644 index 0000000..09ce653 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.dao.AccountMapper; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.stereotype.Service; + +/** + *

+ * 管理员表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@Service +public class AccountServiceImpl extends ServiceImpl implements IAccountService { + + @Override + public Account findUserByName(String userName) { + + EntityWrapper userEntityWrapper = new EntityWrapper<>(); + userEntityWrapper.eq("name",userName); + userEntityWrapper.eq("status","1"); + return this.selectOne(userEntityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java new file mode 100644 index 0000000..dd04da0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java @@ -0,0 +1,138 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.shiro.ShiroUser; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ContractMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IPaymentsService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ContractServiceImpl extends ServiceImpl implements IContractService { + @Autowired + private IPaymentsService paymentsService; + @Autowired + private ICommonPermissionService permissionService; + @Autowired + private IAccountService userService; + @Value("${casic.producerName}") + private String producerName; + @Value("${casic.repairName}") + private String repairName; + + @Override + public List selectPageList(Page page, String keyword1, String keyword2, String keyword3) { + +// EntityWrapper query = new EntityWrapper<>(); +// if (ToolUtil.isNotEmpty(keyword1)) { +// query.like("contract_factory", keyword1); +// } +// if (ToolUtil.isNotEmpty(keyword3)) { +// query.like("contract_number", keyword3); +// } +// List contractList = this.selectPage(page, query).getRecords(); +// contractList.forEach(contract -> { +// contract.setPaymentStatus(getPaymentStatus(contract)); +// String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" +// + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" +// + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); +// contract.setNetFlow(netFlowStr); +// +// }); +// return contractList; + + + List contractList = new ArrayList<>(); + DataScope dataScope = permissionService.getCurrUserDataScope(); + ShiroUser currentUser = permissionService.getCurrLoginUser(); + if (currentUser.getRoleTips().contains(producerName) || currentUser.getRoleTips().contains(repairName)) { + contractList = this.baseMapper.findContractList(dataScope,page, currentUser.getName(), keyword1, keyword2, keyword3); + } else { + contractList = this.baseMapper.findContractList(dataScope,page, "", keyword1, keyword2, keyword3); + } + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + + }); + return contractList; + } + + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + + + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("contractFactory", keyword1); + } + if (ToolUtil.isNotEmpty(keyword3)) { + query.like("contract_number", keyword3); + } + + List contractList = this.selectList(query); + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); +// permissionService.findInDictByCode("applyStatus") + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + }); + + return contractList; + } + + @Override + public void importContract(List contracts) { + contracts.forEach(contract -> { + EntityWrapper query = new EntityWrapper<>(); + query.eq("contract_number", contract.getContractNumber()); + this.delete(query); + Account user = userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); + this.insert(contract); + }); + } + + public String getPaymentStatus(Contract contract) { + Map paraMap = new HashMap<>(); + paraMap.put("pro_id", contract.getId()); + List paymentsList = paymentsService.selectByMap(paraMap); + float sum = 0; + for (Payments payments : paymentsList) { + sum = sum + (ToolUtil.isNotEmpty(payments.getMoney()) ? Float.parseFloat(payments.getMoney()) : 0); + } + DecimalFormat df = new DecimalFormat("0"); + return sum + "," + df.format(100 * sum / Float.valueOf(contract.getContractAmount())) + "%"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java new file mode 100644 index 0000000..0c125d8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PaymentsMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class PaymentsServiceImpl extends ServiceImpl implements IPaymentsService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money,String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List paymentsList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Payments payments : paymentsList) { + if(reorder.equals(payments.getReorder())) continue; + total += ToolUtil.isNotEmpty(payments.getMoney()) ? + Long.valueOf(payments.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java new file mode 100644 index 0000000..ac6d447 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductDeviceTypeMapper; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.swing.text.html.parser.Entity; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductDeviceTypeServiceImpl extends ServiceImpl implements IProductDeviceTypeService { + + @Autowired + private ICommonPermissionService permissionService; + + @Transactional(rollbackFor = Exception.class) + @Override + public void importDeviceType(List results) { + + for (ProductDeviceType productDeviceType : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + this.baseMapper.delete(wrapper); + this.baseMapper.insert(productDeviceType); + } + } + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + wrapper.like("principal", keyword3); + } + List productDeviceTypes = this.selectList(wrapper); + for (ProductDeviceType productDeviceType : productDeviceTypes) { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + } + return productDeviceTypes; + } + + @Override + public List selectPageDataScope(DataScope dataScope, Page page, String keyword1, String keyword2, String keyword3) { + + List productDeviceTypeList = this.baseMapper.selectDataScopePage(dataScope, page, keyword1, keyword2, keyword3); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + return productDeviceTypeList; + + } + + @Override + public List selectDeviceTypeList() { + return this.baseMapper.selectDeviceTypeList(); + } + + + @Override + public ProductDeviceType selectDeviceTypeByModel(String deviceModel) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("product_model",deviceModel); + return this.selectOne(entityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java new file mode 100644 index 0000000..efe4410 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java @@ -0,0 +1,50 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductFactoryInformationMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductFactoryInformationServiceImpl extends ServiceImpl implements IProductFactoryInformationService { + + @Override + public List reportExport(String keyword1, String keyword2) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.like("producting_device", keyword2); + } + List productFactoryInformations = this.selectList(wrapper); + + return productFactoryInformations; + } + + + @Transactional(rollbackFor=Exception.class) + @Override + public void importDeviceType(List results) { + for (ProductFactoryInformation productFactoryInformation : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + delete(wrapper); + this.baseMapper.insert(productFactoryInformation); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java new file mode 100644 index 0000000..34655b0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.dao.ProjectMapper; +import com.casic.missiles.modular.system.service.IProjectService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@Service +public class ProjectServiceImpl extends ServiceImpl implements IProjectService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java new file mode 100644 index 0000000..5e8b77b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java @@ -0,0 +1,48 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.dao.ReimburseMapper; +import com.casic.missiles.modular.system.service.IReimburseService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ReimburseServiceImpl extends ServiceImpl implements IReimburseService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money, String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List reimburseList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Reimburse reimburse : reimburseList) { + if (reorder.equals(reimburse.getReorder())) continue; + total += ToolUtil.isNotEmpty(reimburse.getMoney()) ? + Long.valueOf(reimburse.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java new file mode 100644 index 0000000..d5ffadb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java @@ -0,0 +1,235 @@ +package com.casic.missiles.modular.system.util; + +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; + +import java.util.*; + +/** + * @author test203 + * @since 2020-04-06 + */ +public class DeviceUtil { + private final static String factoryCode = "20"; + private final static String wellExcludeCode = "4120"; + private final static String loraDevice = "A"; + private static Map devTypeCountHashMap = new HashMap(); + + static { + devTypeCountHashMap.put("电子标识器", 99999L); + devTypeCountHashMap.put("井盖状态监测仪", 65534L); + devTypeCountHashMap.put("灯箱控制器", 65535L); + devTypeCountHashMap.put("单灯控制器(单路)", 65535L); + devTypeCountHashMap.put("单灯控制器(双路)", 65535L); + devTypeCountHashMap.put("数据集中器", 255L); + devTypeCountHashMap.put("有害气体监测仪", 999L); + } + + public static List createDevCodes(ProductDeviceType deviceType, List batches) { + List deviceList = new ArrayList<>(); + try { + if ("电子标识器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 年份XX 批次号XX 编号XXXXX + String devCode = deviceType.getProductType() + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%05d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("井盖状态监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + String wellCode4 = String.format("%04x", i); + if (wellExcludeCode.equals(wellCode4)) { + continue; + } + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + wellCode4; + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("灯箱控制器".equals(deviceType.getProductName()) || + "单灯控制器(单路)".equals(deviceType.getProductName()) || + "单灯控制器(双路)".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("数据集中器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("有害气体监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型WS2000X- 年份XX 批次序号XXXX 编号XXX + String devCode = deviceType.getProductType() + + getYearFmt() + + String.format("%04d", batch.getBatchNumber()) + + String.format("%03d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } + //其他设备类型分lora和非lora版本 + else { + if (loraDevice.equals(deviceType.getCommunicationVersion())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } else { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return deviceList; + } + + + public static Map validate(ProductDeviceType deviceType, List batches, Task task) { + Map resultMap = new HashMap<>(); + boolean success = true; + String msg = ""; + long devSum = null != task ? task.getDevcount() : 0; + long devcount = 0, batchCountMax; + batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? + 0 : devTypeCountHashMap.get(deviceType.getProductName()); + if (0 == batchCountMax) { + if (deviceType.getProductModel().indexOf(loraDevice) + == deviceType.getProductModel().length() - 1) { + batchCountMax = 255; + } else { + batchCountMax = 9999; + } + } + for (Batch batch : batches) { + if (batch.getBatchCount() > batchCountMax) { + success = false; + msg = batch.getBatchNumber() + "批次号数量超过了最大范围" + batchCountMax; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + devcount += batch.getBatchCount(); + } + if (devcount != devSum) { + return returnMsg(); + } + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + + public static Map returnMsg() { + Map resultMap = new HashMap<>(); + resultMap.put("success", false); + resultMap.put("msg", "所有批次数量之和与任务中设备数量不一致!"); + return resultMap; + } + + /** + * 获取编码中的年份 + * + * @return + */ + public static String getYearFmt() { + + return DateUtil.format(new Date(), "yyyy").substring(2); + } + + + /** + * 比较2个map + * + * @param batchMap + * @param batchMap1 + * @return + */ + public static boolean equalMap(Map batchMap, Map batchMap1) { + if (batchMap.size() != batchMap1.size()) { + return false; + } + Iterator iter1 = batchMap.keySet().iterator(); + while (iter1.hasNext()) { + Long map1key = iter1.next(); + String map1value = batchMap.get(map1key).toString(); + String map2value = batchMap1.get(map1key).toString(); + if (!map1value.equals(map2value)) { + return false; + } + } + return true; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java new file mode 100644 index 0000000..33c3535 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java @@ -0,0 +1,43 @@ +package com.casic.missiles.modular.system.util; + +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; + +public class FileUtil { + public static File createFile(String path) throws IOException { + File file = new File(path); + if (!file.exists()) { + file.getParentFile().mkdirs(); + file.createNewFile(); + } + return file; + } + + + public static void downloadLocalFile(HttpServletResponse response,String path, String fileName) throws IOException { + File file = new File(path); + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", "attachment; filename=\"" + URLEncoder.encode(fileName, "UTF-8") + "\""); + response.setContentLength((int) file.length()); + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java new file mode 100644 index 0000000..341d3d1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.task.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.task.service.IBatchService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 批次控制器 + * + * @author dev + * @Date 2020-03-27 15:29:55 + */ +@Controller +@RequestMapping("/batch") +public class BatchController extends BaseController { + + + @Autowired + private IBatchService batchService; + + + /** + * 获取批次列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return batchService.selectList(null); + } + + /** + * 获取批次分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = batchService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增批次并生成设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + @Transactional + public Object add(@RequestBody List batches, Task task) { + + return batchService.addBatchAndDevices(batches,task); + + } + + /** + * 删除批次 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String batchId) { + batchService.deleteById(batchId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("batchIds") List batchIds) { + batchService.deleteBatchIds(batchIds); + return ResponseData.success(); + } + + /** + * 修改批次 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Batch batch) { + batchService.updateById(batch); + return ResponseData.success(); + } + + + /** + * 根据设备类型id + * 查找批次号 + */ + @RequestMapping(value = "/getBatchNumber") + @ResponseBody + public Object getBatchNumber(Long devtypeId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.orderBy("id", false); + Batch batch = batchService.selectOne(entityWrapper); + return ResponseData.success(200, "", batch != null ? batch.getBatchNumber() + 1 : 1); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java new file mode 100644 index 0000000..f463168 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java @@ -0,0 +1,102 @@ +package com.casic.missiles.modular.task.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * 任务控制器 + * + * @author dev + * @Date 2020-03-27 15:28:26 + */ +@Controller +@RequestMapping("/task") +public class TaskController extends BaseController { + + + @Autowired + private ITaskService taskService; + + + /** + * 获取任务列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return taskService.selectList(null); + } + + /** + * 获取任务分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = taskService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增任务 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + taskService.insert(task); + return ResponseData.success(); + } + + /** + * 删除任务 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String taskId) { + taskService.deleteById(taskId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("taskIds") List taskIds) { + taskService.deleteBatchIds(taskIds); + return ResponseData.success(); + } + + /** + * 修改任务 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + taskService.updateById(task); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java new file mode 100644 index 0000000..04c7ef8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.task.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IBatchService extends IService { + + /** + * 添加批次和生成设备 + * @param batches + * @param task + * @return + */ + ResponseData addBatchAndDevices(List batches, Task task); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java new file mode 100644 index 0000000..50e1d37 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.task.service; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface ITaskService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java new file mode 100644 index 0000000..a435e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dao.BatchMapper; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.DeviceUtil; +import com.casic.missiles.modular.task.service.IBatchService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class BatchServiceImpl extends ServiceImpl implements IBatchService { + + @Autowired + private IProductDeviceTypeService deviceTypeService; + @Autowired + private IDeviceService deviceService; + + @Transactional(rollbackFor=Exception.class) + @Override + public ResponseData addBatchAndDevices(List batches, Task task) { + //提交前先验证是否已经存在,若存在且批次号或每批数量改变先删除 + try { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("task_id", task.getTaskId()); + List batchList = this.selectList(entityWrapper); + Map batchMap= new HashMap<>(); + Map batchMap1= new HashMap<>(); + List batchIdlist = new ArrayList<>(); + for (Batch batch : batches) { + batchMap.put(batch.getBatchNumber(),batch.getBatchCount()); + batch.setTaskId(task.getTaskId()); + batch.setDevtypeId(task.getDevtypeId()); + batchIdlist.add(batch.getId()); + } + for (Batch batch : batchList) { + batchMap1.put(batch.getBatchNumber(),batch.getBatchCount()); + } + + //若批次号和数量不变只更新批次表 + if (DeviceUtil.equalMap(batchMap, batchMap1)) { + this.insertOrUpdateBatch(batches); + } + //若批次号和数量更新,更新设备表(删除批次相关的设备后,写入新的设备) + else { + + //验证设备数量是否合格 + ProductDeviceType deviceType = deviceTypeService.selectDeviceTypeByModel(task.getDevmodeId()); + Map resultMap = DeviceUtil.validate(deviceType, batches, task); + if (!Boolean.valueOf(resultMap.get("success").toString())) { + return ResponseData.error(400, resultMap.get("msg").toString()); + } + //删除批次 + EntityWrapper batchEntityWrapper = new EntityWrapper<>(); + batchEntityWrapper.eq("task_id", task.getTaskId()); + this.delete(batchEntityWrapper); + //删除设备 + EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); + deviceEntityWrapper.in("batch_id", batchIdlist); + deviceEntityWrapper.eq("devtype_id",task.getDevtypeId()); + deviceService.delete(deviceEntityWrapper); + + //写入批次 + this.insertBatch(batches); + //写入设备 + List deviceList = DeviceUtil.createDevCodes(deviceType, batches); + deviceService.insertBatch(deviceList); + } + } catch (Exception e) { + e.printStackTrace(); + } + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java new file mode 100644 index 0000000..fac60bb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.dao.TaskMapper; +import com.casic.missiles.modular.task.service.ITaskService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class TaskServiceImpl extends ServiceImpl implements ITaskService { + +} diff --git a/casic-web/pom.xml b/casic-web/pom.xml new file mode 100644 index 0000000..f9f1c84 --- /dev/null +++ b/casic-web/pom.xml @@ -0,0 +1,300 @@ + + + 4.0.0 + + com.casic + casic-product-device + ../pom.xml + 1.0.0-SNAPSHOT + + casic-web + ${pro.version} + jar + casic-web + casic web启动入口 + + + + dev + + true + + + dev + true + 3600 + 3600 + + + + + test + + test + false + 180 + 180 + + + + + prod + + prod + true + 3600 + 3600 + + + + + + + + + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-admin-core + ${casic.version} + + + com.casic + casic-admin-area + ${casic.version} + + + + + + + + + + com.casic + casic-device + ${pro.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-cache + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + org.springframework.boot + spring-boot-devtools + true + + + + + + org.apache.shiro + shiro-core + + + slf4j-api + org.slf4j + + + + + org.apache.shiro + shiro-spring + + + org.apache.shiro + shiro-ehcache + + + slf4j-api + org.slf4j + + + + + org.ehcache + ehcache + ${ehcache.version} + + + + commons-io + commons-io + + + com.github.penggle + kaptcha + + + com.google.zxing + core + + + com.ibeetl + beetl + + + org.apache.commons + commons-lang3 + + + com.oracle + ojdbc6 + ${oracle.version} + + + org.codehaus.groovy + groovy-all + true + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + org.apache.maven.plugins + maven-jar-plugin + + + + /config/** + **/MockController.class + + + + + + + + + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + maven-assembly-plugin + + + false + + src/main/build/package.xml + + + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-resources-plugin + 2.6 + + + ${resource.delimiter} + + true + + + + copy-resources + validate + + copy-resources + + + ${project.build.outputDirectory} + + + + src/main/resources + true + + + + + + + + + + src/main/webapp + + + src/main/resources + + + src/main/java + + **/*.xml + + true + + + + + diff --git "a/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" "b/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" new file mode 100644 index 0000000..9656df2 --- /dev/null +++ "b/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" @@ -0,0 +1,4 @@ +@echo off +title 智慧城管 +java -jar guns-web-1.0.0-SNAPSHOT.jar +@pause diff --git a/casic-web/src/main/build/package.xml b/casic-web/src/main/build/package.xml new file mode 100644 index 0000000..68b7576 --- /dev/null +++ b/casic-web/src/main/build/package.xml @@ -0,0 +1,26 @@ + + + package + + zip + + true + + + src/main/bin + / + + + src/main/resources/config + / + + + ${project.build.directory} + / + + *.jar + + + + + \ No newline at end of file diff --git a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java new file mode 100644 index 0000000..0b0c3fb --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java @@ -0,0 +1,35 @@ +package com.casic.missiles; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * SpringBoot方式启动类 + * + * @author casic + * @Date 2017/5/21 12:06 + */ +@SpringBootApplication +@ServletComponentScan +@EnableTransactionManagement(proxyTargetClass = true) +public class CasicApplication { + + private static final Logger logger = LoggerFactory.getLogger(CasicApplication.class); + + public static void main(String[] args){ + SpringApplication.run(CasicApplication.class, args); + logger.info("GunsApplication is success!"); + + } + +} + + + + + + diff --git a/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java new file mode 100644 index 0000000..269025c --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java @@ -0,0 +1,18 @@ +package com.casic.missiles; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.support.SpringBootServletInitializer; + +/** + * Guns Web程序启动类 + * + * @author fengshuonan + * @date 2017-05-21 9:43 + */ +public class CasicServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(CasicApplication.class); + } +} diff --git a/casic-web/src/main/java/com/casic/missiles/controller/MockController.java b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java new file mode 100644 index 0000000..a8285e8 --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java @@ -0,0 +1,83 @@ +package com.casic.missiles.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.log.LogManager; +import com.casic.missiles.core.log.factory.LogTaskFactory; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.core.shiro.ShiroUser; +import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.contant.PermissionContant; +import com.casic.missiles.modular.system.dto.LoginResult; +import org.apache.commons.lang3.StringUtils; +import org.apache.shiro.authc.UsernamePasswordToken; +import org.apache.shiro.subject.Subject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.servlet.http.HttpServletRequest; +import java.security.NoSuchAlgorithmException; +import java.util.Map; + +import static com.casic.missiles.core.support.HttpKit.getIp; + +/** + * 仅为mock登录使用 + */ +@Controller +@RequestMapping("/route") +public class MockController extends BaseController { + private static final Logger logger = LoggerFactory.getLogger(MockController.class); + + /** + * 获取mockToken + */ + @GetMapping("/mockToken") + @ResponseBody + public Object subdepts(HttpServletRequest request, String username, String password) { + ShiroKit.getSession().setAttribute(PermissionContant.IS_APP, false); + SuccessResponseData resultData = new SuccessResponseData(); + if (ToolUtil.isOneEmpty(username, password)) { + username = "admin"; + password = "1111111a"; + } + Subject currentUser = ShiroKit.getSubject(); + + try { + Map key = RSAUtils.genKeyPair(); + ShiroKit.getSession().setAttribute(PermissionContant.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey)); + logger.info("秘钥:".concat(key.get(RSAUtils.RSAPublicKey))); + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + + + UsernamePasswordToken token = new UsernamePasswordToken(username, password.toCharArray()); + token.setRememberMe(false); + try { + currentUser.login(token); + } catch (Exception e) { + e.printStackTrace(); + } + ShiroUser shiroUser = ShiroKit.getUser(); + super.getSession().setAttribute("shiroUser", shiroUser); + super.getSession().setAttribute("username", shiroUser.getAccount()); + + super.getSession().setAttribute(PermissionContant.SESSION_KEY, shiroUser.getId()); + + LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp())); + + ShiroKit.getSession().setAttribute("sessionFlag", true); + resultData.setData(new LoginResult(ShiroKit.getSession().getId().toString(), null)); + resultData.setMessage("登录成功"); + return resultData; + } + +} diff --git a/casic-web/src/main/resources/application.yml b/casic-web/src/main/resources/application.yml new file mode 100644 index 0000000..70cc33b --- /dev/null +++ b/casic-web/src/main/resources/application.yml @@ -0,0 +1,18 @@ +########################################################## +################## 所有profile共有的配置 ################# +########################################################## +spring: + profiles: + active: @activatedProperties@ + datasource: + driver-class-name: com.mysql.jdbc.Driver + jms: + pub-sub-domain: true + aop: + proxy-target-class: true #false为启用jdk默认动态代理,true为cglib动态代理 +################### mybatis-plus配置 ################### +################### guns配置 ################### +casic: + kaptcha-open: true #是否开启登录时验证码 (true/false) + file-upload-path: d:/tmp #文件上传目录(不配置的话为java.io.tmpdir目录) + nologin-urls: /user/login,/kaptcha,/config/baseConfig \ No newline at end of file diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml new file mode 100644 index 0000000..99216e3 --- /dev/null +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -0,0 +1,24 @@ +server: + port: 8083 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://139.198.17.115:3000/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: root + initial-size: 2 + min-idle: 1 +#flowable数据源和多数据源配置 +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /user/login,/user/appLogin,/kaptcha,/config/baseConfig,/route/mockToken,/process/processDiagram,/enterprise2/list,/enterprise2/report,/enterprise3/list,enterprise3/report + file-upload-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\upload\ + file-download-path: D:\tmp\ + producerName: producer + repairName: repair +logging: + level.root: info + level.com.casic: debug + path: logs/ + file: missiles.log + diff --git a/casic-web/src/main/resources/config/application-prod.yml b/casic-web/src/main/resources/config/application-prod.yml new file mode 100644 index 0000000..d54ce16 --- /dev/null +++ b/casic-web/src/main/resources/config/application-prod.yml @@ -0,0 +1,20 @@ +server: + port: 8093 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://139.198.17.115:3000/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: root + initial-size: 2 + min-idle: 1 +#flowable数据源和多数据源配置 +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /user/login,/user/appLogin,/kaptcha,/config/baseConfig,/route/mockToken,/process/processDiagram + file-upload-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\upload +logging: + level.root: info + level.com.casic: debug + path: logs/ + file: missiles.log \ No newline at end of file diff --git a/casic-web/src/main/resources/config/application-test.yml b/casic-web/src/main/resources/config/application-test.yml new file mode 100644 index 0000000..40ec8f5 --- /dev/null +++ b/casic-web/src/main/resources/config/application-test.yml @@ -0,0 +1,21 @@ +server: + port: 8093 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://139.198.17.115:3000/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: root + initial-size: 2 + min-idle: 1 +#flowable数据源和多数据源配置 +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /user/login,/user/appLogin,/kaptcha,/config/baseConfig,/route/mockToken,/process/processDiagram + file-upload-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\upload +logging: + level.root: info + level.com.casic: debug + path: logs/ + file: missiles.log + diff --git a/casic-web/src/main/resources/ehcache.xml b/casic-web/src/main/resources/ehcache.xml new file mode 100644 index 0000000..78c82d8 --- /dev/null +++ b/casic-web/src/main/resources/ehcache.xml @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + diff --git a/casic-web/src/main/resources/excel/contractImp.xlsx b/casic-web/src/main/resources/excel/contractImp.xlsx new file mode 100644 index 0000000..71e3f4a --- /dev/null +++ b/casic-web/src/main/resources/excel/contractImp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/contractList.xlsx b/casic-web/src/main/resources/excel/contractList.xlsx new file mode 100644 index 0000000..19dda44 --- /dev/null +++ b/casic-web/src/main/resources/excel/contractList.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/devTypeImp.xlsx b/casic-web/src/main/resources/excel/devTypeImp.xlsx new file mode 100644 index 0000000..516a5a6 --- /dev/null +++ b/casic-web/src/main/resources/excel/devTypeImp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/deviceTypeList.xlsx b/casic-web/src/main/resources/excel/deviceTypeList.xlsx new file mode 100644 index 0000000..f4121d8 --- /dev/null +++ b/casic-web/src/main/resources/excel/deviceTypeList.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/factoryImp.xlsx b/casic-web/src/main/resources/excel/factoryImp.xlsx new file mode 100644 index 0000000..1054f71 --- /dev/null +++ b/casic-web/src/main/resources/excel/factoryImp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/factoryList.xlsx b/casic-web/src/main/resources/excel/factoryList.xlsx new file mode 100644 index 0000000..71b8ecb --- /dev/null +++ b/casic-web/src/main/resources/excel/factoryList.xlsx Binary files differ diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java new file mode 100644 index 0000000..4670df3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 集中器相关日志 + */ +public class ProjectDict extends AbstractDictMap { + public static final String PROJECT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + @Override + public void init() { + put("projectName","项目名称"); + put("projectSimpleName","项目简称"); + put("projectManager","项目经理"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java new file mode 100644 index 0000000..7981a17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dto; + +/** + * 用于设备类型展示 + * @author test203 + * @date 2020-04-03 + */ +public class DeviceTypeDto { + private Long id; + private String productName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java new file mode 100644 index 0000000..f254585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java @@ -0,0 +1,361 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.math.BigDecimal; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; + +/** + *

+ * 管理员表 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@TableName("sys_user") +public class Account extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + /** + * 头像 + */ + private String avatar; + /** + * 账号 + */ + private String account; + /** + * 密码 + */ + private String password; + /** + * md5密码盐 + */ + private String salt; + /** + * 名字 + */ + private String name; + /** + * 生日 + */ + private Date birthday; + /** + * 性别(1:男 2:女) + */ + private String sex; + /** + * 电子邮件 + */ + private String email; + /** + * 电话 + */ + private String phone; + /** + * 角色id + */ + private String roleid; + /** + * 部门id + */ + private Long deptid; + /** + * 状态(1:启用 2:冻结 3:删除) + */ + private String status; + /** + * 创建时间 + */ + private Date createtime; + /** + * 保留字段 + */ + private Integer version; + private String targetid; + private String targetname; + @TableField("password_sync") + private String passwordSync; + @TableField("IS_SYNC") + private Integer isSync; + private String simplename; + /** + * 同步组织ID + */ + @TableField("TARGET_DEPTID_SYNC") + private String targetDeptidSync; + @TableField("LOGIN_IP") + private String loginIp; + @TableField("LOGIN_MAC") + private String loginMac; + /** + * 最后在线时间 + */ + @TableField("LAST_TIME") + private Date lastTime; + /** + * 经度 + */ + @TableField("POSITION_LNG") + private BigDecimal positionLng; + /** + * 纬度 + */ + @TableField("POSITION_LAT") + private BigDecimal positionLat; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt() { + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getRoleid() { + return roleid; + } + + public void setRoleid(String roleid) { + this.roleid = roleid; + } + + public Long getDeptid() { + return deptid; + } + + public void setDeptid(Long deptid) { + this.deptid = deptid; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + public String getTargetid() { + return targetid; + } + + public void setTargetid(String targetid) { + this.targetid = targetid; + } + + public String getTargetname() { + return targetname; + } + + public void setTargetname(String targetname) { + this.targetname = targetname; + } + + public String getPasswordSync() { + return passwordSync; + } + + public void setPasswordSync(String passwordSync) { + this.passwordSync = passwordSync; + } + + public Integer getIsSync() { + return isSync; + } + + public void setIsSync(Integer isSync) { + this.isSync = isSync; + } + + public String getSimplename() { + return simplename; + } + + public void setSimplename(String simplename) { + this.simplename = simplename; + } + + public String getTargetDeptidSync() { + return targetDeptidSync; + } + + public void setTargetDeptidSync(String targetDeptidSync) { + this.targetDeptidSync = targetDeptidSync; + } + + public String getLoginIp() { + return loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getLoginMac() { + return loginMac; + } + + public void setLoginMac(String loginMac) { + this.loginMac = loginMac; + } + + public Date getLastTime() { + return lastTime; + } + + public void setLastTime(Date lastTime) { + this.lastTime = lastTime; + } + + public BigDecimal getPositionLng() { + return positionLng; + } + + public void setPositionLng(BigDecimal positionLng) { + this.positionLng = positionLng; + } + + public BigDecimal getPositionLat() { + return positionLat; + } + + public void setPositionLat(BigDecimal positionLat) { + this.positionLat = positionLat; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", avatar=" + avatar + + ", account=" + account + + ", password=" + password + + ", salt=" + salt + + ", name=" + name + + ", birthday=" + birthday + + ", sex=" + sex + + ", email=" + email + + ", phone=" + phone + + ", roleid=" + roleid + + ", deptid=" + deptid + + ", status=" + status + + ", createtime=" + createtime + + ", version=" + version + + ", targetid=" + targetid + + ", targetname=" + targetname + + ", passwordSync=" + passwordSync + + ", isSync=" + isSync + + ", simplename=" + simplename + + ", targetDeptidSync=" + targetDeptidSync + + ", loginIp=" + loginIp + + ", loginMac=" + loginMac + + ", lastTime=" + lastTime + + ", positionLng=" + positionLng + + ", positionLat=" + positionLat + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java new file mode 100644 index 0000000..81516b7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -0,0 +1,110 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_batch") +public class Batch extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_number") + private Long batchNumber; + @TableField("batch_count") + private Long batchCount; + @TableField("contract_id") + private Long contractId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("task_id") + private Long taskId; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(Long batchNumber) { + this.batchNumber = batchNumber; + } + + public Long getBatchCount() { + return batchCount; + } + + public void setBatchCount(Long batchCount) { + this.batchCount = batchCount; + } + + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Batch{" + + "id=" + id + + ", batchNumber=" + batchNumber + + ", batchCount=" + batchCount + + ", contractId=" + contractId + + ", taskId=" + taskId + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java new file mode 100644 index 0000000..893a1ed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -0,0 +1,186 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_contract") +public class Contract extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("contract_number") + private String contractNumber; + @TableField("contract_name") + private String contractName; + @TableField("contract_content") + private String contractContent; + @TableField("contract_amount") + private String contractAmount; + @TableField("external_project_apply") + private String externalProjectApply; + @TableField("external_contract_apply") + private String externalContractApply; + @TableField("principal") + private String principal; + @TableField("external_check_apply") + private String externalCheckApply; + @TableField("contract_factory") + private String contractFactory; + @TableField("createtime") + private Date createtime; + @TableField(exist = false) + private String paymentStatus; + @TableField(exist = false) + private String netFlow; + @TableField("deptid") + private String deptid; + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getContractName() { + return contractName; + } + + public void setContractName(String contractName) { + this.contractName = contractName; + } + + public String getContractContent() { + return contractContent; + } + + public void setContractContent(String contractContent) { + this.contractContent = contractContent; + } + + public String getContractAmount() { + return contractAmount; + } + + public void setContractAmount(String contractAmount) { + this.contractAmount = contractAmount; + } + + public String getExternalProjectApply() { + return externalProjectApply; + } + + public void setExternalProjectApply(String externalProjectApply) { + this.externalProjectApply = externalProjectApply; + } + + public String getExternalContractApply() { + return externalContractApply; + } + + public void setExternalContractApply(String externalContractApply) { + this.externalContractApply = externalContractApply; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalCheckApply() { + return externalCheckApply; + } + + public void setExternalCheckApply(String externalCheckApply) { + this.externalCheckApply = externalCheckApply; + } + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public String getContractFactory() { + return contractFactory; + } + + public void setContractFactory(String contractFactory) { + this.contractFactory = contractFactory; + } + + public String getNetFlow() { + return netFlow; + } + + public void setNetFlow(String netFlow) { + this.netFlow = netFlow; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Contract{" + + "contractNumber=" + contractNumber + + ", contractName=" + contractName + + ", contractContent=" + contractContent + + ", contractAmount=" + contractAmount + + ", externalProjectApply=" + externalProjectApply + + ", externalContractApply=" + externalContractApply + + ", principal=" + principal + + ", id=" + id + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java new file mode 100644 index 0000000..8718d91 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -0,0 +1,150 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_device") +public class Device extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_id") + private Long batchId; + private String devcode; + @TableField("devtype_id") + private Long devtypeId; + @TableField("is_send") + private String isSend; + private String longitude; + private String latitude; + @TableField("install_height") + private String installHeight; + private String iccid; + private Long imei; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public Long getImei() { + return imei; + } + + public void setImei(Long imei) { + this.imei = imei; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Device{" + + "id=" + id + + ", batchId=" + batchId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", isSend=" + isSend + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", installHeight=" + installHeight + + ", iccid=" + iccid + + ", imei=" + imei + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java new file mode 100644 index 0000000..870c36f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_payments") +public class Payments extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @TableField("paytime") + private Date paytime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getPaytime() { + return paytime; + } + + public void setPaytime(Date paytime) { + this.paytime = paytime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Payments{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", paytime=" + paytime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java new file mode 100644 index 0000000..ae6b585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -0,0 +1,285 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_device_type") +public class ProductDeviceType extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 产品名称 + */ + @TableField("product_name") + private String productName; + /** + * 产品型号 + */ + @TableField("product_model") + private String productModel; + + /** + * 通讯版本号 + */ + @TableField("communication_version") + private String communicationVersion; + + /** + * 产品类型 + */ + @TableField("product_type") + private String productType; + + /** + * 整机版本号 + */ + @TableField("machine_version") + private String machineVersion; + /** + * 硬件版本号 + */ + @TableField("hardware_version") + private String hardwareVersion; + /** + * 软件版本号 + */ + @TableField("software_version") + private String softwareVersion; + /** + * 设计归档 + */ + @TableField("design_archive") + private String designArchive; + /** + * 批产归档 + */ + @TableField("batch_filing") + private String batchFiling; + /** + * 状态 + */ + @TableField("status") + private Integer status; + /** + * 性能指标 + */ + @TableField("kpi") + private String kpi; + /** + * 批产负责人 + */ + @TableField("principal") + private String principal; + /** + * 定额汇总表 + */ + @TableField("quota_summary") + private String quotaSummary; + + /** + * 权属部门 + */ + @TableField("deptid") + private String deptid; + + /** + * 备注 + */ + @TableField("descn") + private String descn; + + @TableField("createtime") + private Date createtime; + + + @TableField(exist = false) + private String statusFmt; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } + + public String getMachineVersion() { + return machineVersion; + } + + public void setMachineVersion(String machineVersion) { + this.machineVersion = machineVersion; + } + + public String getHardwareVersion() { + return hardwareVersion; + } + + public void setHardwareVersion(String hardwareVersion) { + this.hardwareVersion = hardwareVersion; + } + + public String getSoftwareVersion() { + return softwareVersion; + } + + public void setSoftwareVersion(String softwareVersion) { + this.softwareVersion = softwareVersion; + } + + public String getDesignArchive() { + return designArchive; + } + + public void setDesignArchive(String designArchive) { + this.designArchive = designArchive; + } + + public String getBatchFiling() { + return batchFiling; + } + + public void setBatchFiling(String batchFiling) { + this.batchFiling = batchFiling; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getKpi() { + return kpi; + } + + public void setKpi(String kpi) { + this.kpi = kpi; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public String getQuotaSummary() { + return quotaSummary; + } + + public void setQuotaSummary(String quotaSummary) { + this.quotaSummary = quotaSummary; + } + + public String getStatusFmt() { + return statusFmt; + } + + public void setStatusFmt(String statusFmt) { + this.statusFmt = statusFmt; + } + + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getProductType() { + return productType; + } + + public void setProductType(String productType) { + this.productType = productType; + } + + public String getCommunicationVersion() { + return communicationVersion; + } + + public void setCommunicationVersion(String communicationVersion) { + this.communicationVersion = communicationVersion; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductDeviceType{" + + "id=" + id + + ", productName=" + productName + + ", productModel=" + productModel + + ", machineVersion=" + machineVersion + + ", hardwareVersion=" + hardwareVersion + + ", softwareVersion=" + softwareVersion + + ", designArchive=" + designArchive + + ", batchFiling=" + batchFiling + + ", status=" + status + + ", kpi=" + kpi + + ", principal=" + principal + + ", quotaSummary=" + quotaSummary + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java new file mode 100644 index 0000000..b0fd924 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java @@ -0,0 +1,187 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_factory_information") +public class ProductFactoryInformation extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 厂家名称 + */ + @TableField("name") + private String name; + /** + * 厂家联系人 + */ + @TableField("person_name") + private String personName; + /** + * 地址 + */ + @TableField("address") + private String address; + /** + * 电话 + */ + @TableField("phone") + private String phone; + /** + * 开户行 + */ + @TableField("bank") + private String bank; + /** + * 税号 + */ + @TableField("tax_number") + private String taxNumber; + /** + * 在产设备 + */ + @TableField("producting_device") + private String productingDevice; + /** + * 设备报价表 + */ + @TableField("equipment_quotation") + private String equipmentQuotation; + + @TableField("createtime") + private Date createtime =new Date(); + + @TableField("deptid") + private String deptid; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPersonName() { + return personName; + } + + public void setPersonName(String personName) { + this.personName = personName; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getBank() { + return bank; + } + + public void setBank(String bank) { + this.bank = bank; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getProductingDevice() { + return productingDevice; + } + + public void setProductingDevice(String productingDevice) { + this.productingDevice = productingDevice; + } + + public String getEquipmentQuotation() { + return equipmentQuotation; + } + + public void setEquipmentQuotation(String equipmentQuotation) { + this.equipmentQuotation = equipmentQuotation; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductFactoryInformation{" + + "id=" + id + + ", name=" + name + + ", personName=" + personName + + ", address=" + address + + ", phone=" + phone + + ", bank=" + bank + + ", taxNumber=" + taxNumber + + ", productingDevice=" + productingDevice + + ", equipmentQuotation=" + equipmentQuotation + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java new file mode 100644 index 0000000..00cbc92 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -0,0 +1,99 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@TableName("product_project") +public class Project extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_name") + private String projectName; + @TableField("project_simple_name") + private String projectSimpleName; + @TableField("project_manager") + private String projectManager; + private String descn; + @TableField("createtime") + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getProjectManager() { + return projectManager; + } + + public void setProjectManager(String projectManager) { + this.projectManager = projectManager; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Project{" + + "id=" + id + + ", projectName=" + projectName + + ", projectSimpleName=" + projectSimpleName + + ", projectManager=" + projectManager + + ", descn=" + descn + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java new file mode 100644 index 0000000..658c2e1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java @@ -0,0 +1,126 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_reimburse") +public class Reimburse extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mi:ss") + @TableField("reimburse_time") + private Date reimburseTime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getReimburseTime() { + return reimburseTime; + } + + public void setReimburseTime(Date reimburseTime) { + this.reimburseTime = reimburseTime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Reimburse{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", reimburseTime=" + reimburseTime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java new file mode 100644 index 0000000..987efa7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java @@ -0,0 +1,141 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_task") +public class Task extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_id") + private Long projectId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("devmode_id") + private String devmodeId; + private Long devcount; + @TableField("delivery_time") + private Date deliveryTime; + private String demand; + private Date createtime; + @TableField(exist = false) + private String deliveryTimeFmt; + + @TableField(exist = false) + private Long taskId; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getProjectId() { + return projectId; + } + + public void setProjectId(Long projectId) { + this.projectId = projectId; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDevmodeId() { + return devmodeId; + } + + public void setDevmodeId(String devmodeId) { + this.devmodeId = devmodeId; + } + + public Long getDevcount() { + return devcount; + } + + public void setDevcount(Long devcount) { + this.devcount = devcount; + } + + public Date getDeliveryTime() { + return deliveryTime; + } + + public void setDeliveryTime(Date deliveryTime) { + this.deliveryTime = deliveryTime; + } + + public String getDemand() { + return demand; + } + + public void setDemand(String demand) { + this.demand = demand; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeliveryTimeFmt() { + return deliveryTimeFmt; + } + + public void setDeliveryTimeFmt(String deliveryTimeFmt) { + this.deliveryTimeFmt = deliveryTimeFmt; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Task{" + + "id=" + id + + ", projectId=" + projectId + + ", devtypeId=" + devtypeId + + ", devmodeId=" + devmodeId + + ", devcount=" + devcount + + ", deliveryTime=" + deliveryTime + + ", demand=" + demand + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java new file mode 100644 index 0000000..7785de5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface IAccountService extends IService { + + /** + * 根据用户名查用户 + * @param userName + * @return + */ + Account findUserByName(String userName); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java new file mode 100644 index 0000000..d8b5e87 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IContractService extends IService { + List selectPageList(Page page, String keyword1, String keyword2, String keyword3); + List reportExport(String keyword1, String keyword2, String keyword3); + void importContract( List contracts); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java new file mode 100644 index 0000000..0f2d6e0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IPaymentsService extends IService { + + boolean validate(Long proId,String money,String reorder); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java new file mode 100644 index 0000000..71490df --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -0,0 +1,62 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductDeviceTypeService extends IService { + + /** + * 批量导入设备类型列表 + * @param results + */ + void importDeviceType(List results); + + /** + * 导出列表 + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List reportExport(String keyword1,String keyword2,String keyword3); + + + /** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectPageDataScope(DataScope dataScope, Page page, + String keyword1, String keyword2, String keyword3); + + /** + * 获取在产的设备类型 + * @return + */ + List selectDeviceTypeList(); + + /** + * 根据产品型号获取产品 + * @param deviceModel + * @return + */ + ProductDeviceType selectDeviceTypeByModel(String deviceModel); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java new file mode 100644 index 0000000..455f60a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductFactoryInformationService extends IService { + /** + * 根据条件导出列表 + * @param keyword1 + * @param keyword2 + * @return + */ + List reportExport(String keyword1, String keyword2); + + + /** + * 导入 + * @param results + */ + void importDeviceType(List results); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java new file mode 100644 index 0000000..3c27bd1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface IProjectService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java new file mode 100644 index 0000000..ee0a55c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IReimburseService extends IService { + boolean validate(Long proId,String money,String reorder); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java new file mode 100644 index 0000000..09ce653 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.dao.AccountMapper; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.stereotype.Service; + +/** + *

+ * 管理员表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@Service +public class AccountServiceImpl extends ServiceImpl implements IAccountService { + + @Override + public Account findUserByName(String userName) { + + EntityWrapper userEntityWrapper = new EntityWrapper<>(); + userEntityWrapper.eq("name",userName); + userEntityWrapper.eq("status","1"); + return this.selectOne(userEntityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java new file mode 100644 index 0000000..dd04da0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java @@ -0,0 +1,138 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.shiro.ShiroUser; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ContractMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IPaymentsService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ContractServiceImpl extends ServiceImpl implements IContractService { + @Autowired + private IPaymentsService paymentsService; + @Autowired + private ICommonPermissionService permissionService; + @Autowired + private IAccountService userService; + @Value("${casic.producerName}") + private String producerName; + @Value("${casic.repairName}") + private String repairName; + + @Override + public List selectPageList(Page page, String keyword1, String keyword2, String keyword3) { + +// EntityWrapper query = new EntityWrapper<>(); +// if (ToolUtil.isNotEmpty(keyword1)) { +// query.like("contract_factory", keyword1); +// } +// if (ToolUtil.isNotEmpty(keyword3)) { +// query.like("contract_number", keyword3); +// } +// List contractList = this.selectPage(page, query).getRecords(); +// contractList.forEach(contract -> { +// contract.setPaymentStatus(getPaymentStatus(contract)); +// String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" +// + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" +// + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); +// contract.setNetFlow(netFlowStr); +// +// }); +// return contractList; + + + List contractList = new ArrayList<>(); + DataScope dataScope = permissionService.getCurrUserDataScope(); + ShiroUser currentUser = permissionService.getCurrLoginUser(); + if (currentUser.getRoleTips().contains(producerName) || currentUser.getRoleTips().contains(repairName)) { + contractList = this.baseMapper.findContractList(dataScope,page, currentUser.getName(), keyword1, keyword2, keyword3); + } else { + contractList = this.baseMapper.findContractList(dataScope,page, "", keyword1, keyword2, keyword3); + } + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + + }); + return contractList; + } + + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + + + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("contractFactory", keyword1); + } + if (ToolUtil.isNotEmpty(keyword3)) { + query.like("contract_number", keyword3); + } + + List contractList = this.selectList(query); + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); +// permissionService.findInDictByCode("applyStatus") + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + }); + + return contractList; + } + + @Override + public void importContract(List contracts) { + contracts.forEach(contract -> { + EntityWrapper query = new EntityWrapper<>(); + query.eq("contract_number", contract.getContractNumber()); + this.delete(query); + Account user = userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); + this.insert(contract); + }); + } + + public String getPaymentStatus(Contract contract) { + Map paraMap = new HashMap<>(); + paraMap.put("pro_id", contract.getId()); + List paymentsList = paymentsService.selectByMap(paraMap); + float sum = 0; + for (Payments payments : paymentsList) { + sum = sum + (ToolUtil.isNotEmpty(payments.getMoney()) ? Float.parseFloat(payments.getMoney()) : 0); + } + DecimalFormat df = new DecimalFormat("0"); + return sum + "," + df.format(100 * sum / Float.valueOf(contract.getContractAmount())) + "%"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java new file mode 100644 index 0000000..0c125d8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PaymentsMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class PaymentsServiceImpl extends ServiceImpl implements IPaymentsService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money,String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List paymentsList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Payments payments : paymentsList) { + if(reorder.equals(payments.getReorder())) continue; + total += ToolUtil.isNotEmpty(payments.getMoney()) ? + Long.valueOf(payments.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java new file mode 100644 index 0000000..ac6d447 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductDeviceTypeMapper; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.swing.text.html.parser.Entity; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductDeviceTypeServiceImpl extends ServiceImpl implements IProductDeviceTypeService { + + @Autowired + private ICommonPermissionService permissionService; + + @Transactional(rollbackFor = Exception.class) + @Override + public void importDeviceType(List results) { + + for (ProductDeviceType productDeviceType : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + this.baseMapper.delete(wrapper); + this.baseMapper.insert(productDeviceType); + } + } + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + wrapper.like("principal", keyword3); + } + List productDeviceTypes = this.selectList(wrapper); + for (ProductDeviceType productDeviceType : productDeviceTypes) { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + } + return productDeviceTypes; + } + + @Override + public List selectPageDataScope(DataScope dataScope, Page page, String keyword1, String keyword2, String keyword3) { + + List productDeviceTypeList = this.baseMapper.selectDataScopePage(dataScope, page, keyword1, keyword2, keyword3); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + return productDeviceTypeList; + + } + + @Override + public List selectDeviceTypeList() { + return this.baseMapper.selectDeviceTypeList(); + } + + + @Override + public ProductDeviceType selectDeviceTypeByModel(String deviceModel) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("product_model",deviceModel); + return this.selectOne(entityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java new file mode 100644 index 0000000..efe4410 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java @@ -0,0 +1,50 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductFactoryInformationMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductFactoryInformationServiceImpl extends ServiceImpl implements IProductFactoryInformationService { + + @Override + public List reportExport(String keyword1, String keyword2) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.like("producting_device", keyword2); + } + List productFactoryInformations = this.selectList(wrapper); + + return productFactoryInformations; + } + + + @Transactional(rollbackFor=Exception.class) + @Override + public void importDeviceType(List results) { + for (ProductFactoryInformation productFactoryInformation : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + delete(wrapper); + this.baseMapper.insert(productFactoryInformation); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java new file mode 100644 index 0000000..34655b0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.dao.ProjectMapper; +import com.casic.missiles.modular.system.service.IProjectService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@Service +public class ProjectServiceImpl extends ServiceImpl implements IProjectService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java new file mode 100644 index 0000000..5e8b77b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java @@ -0,0 +1,48 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.dao.ReimburseMapper; +import com.casic.missiles.modular.system.service.IReimburseService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ReimburseServiceImpl extends ServiceImpl implements IReimburseService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money, String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List reimburseList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Reimburse reimburse : reimburseList) { + if (reorder.equals(reimburse.getReorder())) continue; + total += ToolUtil.isNotEmpty(reimburse.getMoney()) ? + Long.valueOf(reimburse.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java new file mode 100644 index 0000000..d5ffadb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java @@ -0,0 +1,235 @@ +package com.casic.missiles.modular.system.util; + +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; + +import java.util.*; + +/** + * @author test203 + * @since 2020-04-06 + */ +public class DeviceUtil { + private final static String factoryCode = "20"; + private final static String wellExcludeCode = "4120"; + private final static String loraDevice = "A"; + private static Map devTypeCountHashMap = new HashMap(); + + static { + devTypeCountHashMap.put("电子标识器", 99999L); + devTypeCountHashMap.put("井盖状态监测仪", 65534L); + devTypeCountHashMap.put("灯箱控制器", 65535L); + devTypeCountHashMap.put("单灯控制器(单路)", 65535L); + devTypeCountHashMap.put("单灯控制器(双路)", 65535L); + devTypeCountHashMap.put("数据集中器", 255L); + devTypeCountHashMap.put("有害气体监测仪", 999L); + } + + public static List createDevCodes(ProductDeviceType deviceType, List batches) { + List deviceList = new ArrayList<>(); + try { + if ("电子标识器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 年份XX 批次号XX 编号XXXXX + String devCode = deviceType.getProductType() + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%05d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("井盖状态监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + String wellCode4 = String.format("%04x", i); + if (wellExcludeCode.equals(wellCode4)) { + continue; + } + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + wellCode4; + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("灯箱控制器".equals(deviceType.getProductName()) || + "单灯控制器(单路)".equals(deviceType.getProductName()) || + "单灯控制器(双路)".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("数据集中器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("有害气体监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型WS2000X- 年份XX 批次序号XXXX 编号XXX + String devCode = deviceType.getProductType() + + getYearFmt() + + String.format("%04d", batch.getBatchNumber()) + + String.format("%03d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } + //其他设备类型分lora和非lora版本 + else { + if (loraDevice.equals(deviceType.getCommunicationVersion())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } else { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return deviceList; + } + + + public static Map validate(ProductDeviceType deviceType, List batches, Task task) { + Map resultMap = new HashMap<>(); + boolean success = true; + String msg = ""; + long devSum = null != task ? task.getDevcount() : 0; + long devcount = 0, batchCountMax; + batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? + 0 : devTypeCountHashMap.get(deviceType.getProductName()); + if (0 == batchCountMax) { + if (deviceType.getProductModel().indexOf(loraDevice) + == deviceType.getProductModel().length() - 1) { + batchCountMax = 255; + } else { + batchCountMax = 9999; + } + } + for (Batch batch : batches) { + if (batch.getBatchCount() > batchCountMax) { + success = false; + msg = batch.getBatchNumber() + "批次号数量超过了最大范围" + batchCountMax; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + devcount += batch.getBatchCount(); + } + if (devcount != devSum) { + return returnMsg(); + } + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + + public static Map returnMsg() { + Map resultMap = new HashMap<>(); + resultMap.put("success", false); + resultMap.put("msg", "所有批次数量之和与任务中设备数量不一致!"); + return resultMap; + } + + /** + * 获取编码中的年份 + * + * @return + */ + public static String getYearFmt() { + + return DateUtil.format(new Date(), "yyyy").substring(2); + } + + + /** + * 比较2个map + * + * @param batchMap + * @param batchMap1 + * @return + */ + public static boolean equalMap(Map batchMap, Map batchMap1) { + if (batchMap.size() != batchMap1.size()) { + return false; + } + Iterator iter1 = batchMap.keySet().iterator(); + while (iter1.hasNext()) { + Long map1key = iter1.next(); + String map1value = batchMap.get(map1key).toString(); + String map2value = batchMap1.get(map1key).toString(); + if (!map1value.equals(map2value)) { + return false; + } + } + return true; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java new file mode 100644 index 0000000..33c3535 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java @@ -0,0 +1,43 @@ +package com.casic.missiles.modular.system.util; + +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; + +public class FileUtil { + public static File createFile(String path) throws IOException { + File file = new File(path); + if (!file.exists()) { + file.getParentFile().mkdirs(); + file.createNewFile(); + } + return file; + } + + + public static void downloadLocalFile(HttpServletResponse response,String path, String fileName) throws IOException { + File file = new File(path); + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", "attachment; filename=\"" + URLEncoder.encode(fileName, "UTF-8") + "\""); + response.setContentLength((int) file.length()); + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java new file mode 100644 index 0000000..341d3d1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.task.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.task.service.IBatchService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 批次控制器 + * + * @author dev + * @Date 2020-03-27 15:29:55 + */ +@Controller +@RequestMapping("/batch") +public class BatchController extends BaseController { + + + @Autowired + private IBatchService batchService; + + + /** + * 获取批次列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return batchService.selectList(null); + } + + /** + * 获取批次分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = batchService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增批次并生成设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + @Transactional + public Object add(@RequestBody List batches, Task task) { + + return batchService.addBatchAndDevices(batches,task); + + } + + /** + * 删除批次 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String batchId) { + batchService.deleteById(batchId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("batchIds") List batchIds) { + batchService.deleteBatchIds(batchIds); + return ResponseData.success(); + } + + /** + * 修改批次 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Batch batch) { + batchService.updateById(batch); + return ResponseData.success(); + } + + + /** + * 根据设备类型id + * 查找批次号 + */ + @RequestMapping(value = "/getBatchNumber") + @ResponseBody + public Object getBatchNumber(Long devtypeId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.orderBy("id", false); + Batch batch = batchService.selectOne(entityWrapper); + return ResponseData.success(200, "", batch != null ? batch.getBatchNumber() + 1 : 1); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java new file mode 100644 index 0000000..f463168 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java @@ -0,0 +1,102 @@ +package com.casic.missiles.modular.task.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * 任务控制器 + * + * @author dev + * @Date 2020-03-27 15:28:26 + */ +@Controller +@RequestMapping("/task") +public class TaskController extends BaseController { + + + @Autowired + private ITaskService taskService; + + + /** + * 获取任务列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return taskService.selectList(null); + } + + /** + * 获取任务分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = taskService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增任务 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + taskService.insert(task); + return ResponseData.success(); + } + + /** + * 删除任务 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String taskId) { + taskService.deleteById(taskId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("taskIds") List taskIds) { + taskService.deleteBatchIds(taskIds); + return ResponseData.success(); + } + + /** + * 修改任务 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + taskService.updateById(task); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java new file mode 100644 index 0000000..04c7ef8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.task.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IBatchService extends IService { + + /** + * 添加批次和生成设备 + * @param batches + * @param task + * @return + */ + ResponseData addBatchAndDevices(List batches, Task task); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java new file mode 100644 index 0000000..50e1d37 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.task.service; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface ITaskService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java new file mode 100644 index 0000000..a435e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dao.BatchMapper; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.DeviceUtil; +import com.casic.missiles.modular.task.service.IBatchService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class BatchServiceImpl extends ServiceImpl implements IBatchService { + + @Autowired + private IProductDeviceTypeService deviceTypeService; + @Autowired + private IDeviceService deviceService; + + @Transactional(rollbackFor=Exception.class) + @Override + public ResponseData addBatchAndDevices(List batches, Task task) { + //提交前先验证是否已经存在,若存在且批次号或每批数量改变先删除 + try { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("task_id", task.getTaskId()); + List batchList = this.selectList(entityWrapper); + Map batchMap= new HashMap<>(); + Map batchMap1= new HashMap<>(); + List batchIdlist = new ArrayList<>(); + for (Batch batch : batches) { + batchMap.put(batch.getBatchNumber(),batch.getBatchCount()); + batch.setTaskId(task.getTaskId()); + batch.setDevtypeId(task.getDevtypeId()); + batchIdlist.add(batch.getId()); + } + for (Batch batch : batchList) { + batchMap1.put(batch.getBatchNumber(),batch.getBatchCount()); + } + + //若批次号和数量不变只更新批次表 + if (DeviceUtil.equalMap(batchMap, batchMap1)) { + this.insertOrUpdateBatch(batches); + } + //若批次号和数量更新,更新设备表(删除批次相关的设备后,写入新的设备) + else { + + //验证设备数量是否合格 + ProductDeviceType deviceType = deviceTypeService.selectDeviceTypeByModel(task.getDevmodeId()); + Map resultMap = DeviceUtil.validate(deviceType, batches, task); + if (!Boolean.valueOf(resultMap.get("success").toString())) { + return ResponseData.error(400, resultMap.get("msg").toString()); + } + //删除批次 + EntityWrapper batchEntityWrapper = new EntityWrapper<>(); + batchEntityWrapper.eq("task_id", task.getTaskId()); + this.delete(batchEntityWrapper); + //删除设备 + EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); + deviceEntityWrapper.in("batch_id", batchIdlist); + deviceEntityWrapper.eq("devtype_id",task.getDevtypeId()); + deviceService.delete(deviceEntityWrapper); + + //写入批次 + this.insertBatch(batches); + //写入设备 + List deviceList = DeviceUtil.createDevCodes(deviceType, batches); + deviceService.insertBatch(deviceList); + } + } catch (Exception e) { + e.printStackTrace(); + } + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java new file mode 100644 index 0000000..fac60bb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.dao.TaskMapper; +import com.casic.missiles.modular.task.service.ITaskService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class TaskServiceImpl extends ServiceImpl implements ITaskService { + +} diff --git a/casic-web/pom.xml b/casic-web/pom.xml new file mode 100644 index 0000000..f9f1c84 --- /dev/null +++ b/casic-web/pom.xml @@ -0,0 +1,300 @@ + + + 4.0.0 + + com.casic + casic-product-device + ../pom.xml + 1.0.0-SNAPSHOT + + casic-web + ${pro.version} + jar + casic-web + casic web启动入口 + + + + dev + + true + + + dev + true + 3600 + 3600 + + + + + test + + test + false + 180 + 180 + + + + + prod + + prod + true + 3600 + 3600 + + + + + + + + + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-admin-core + ${casic.version} + + + com.casic + casic-admin-area + ${casic.version} + + + + + + + + + + com.casic + casic-device + ${pro.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-cache + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + org.springframework.boot + spring-boot-devtools + true + + + + + + org.apache.shiro + shiro-core + + + slf4j-api + org.slf4j + + + + + org.apache.shiro + shiro-spring + + + org.apache.shiro + shiro-ehcache + + + slf4j-api + org.slf4j + + + + + org.ehcache + ehcache + ${ehcache.version} + + + + commons-io + commons-io + + + com.github.penggle + kaptcha + + + com.google.zxing + core + + + com.ibeetl + beetl + + + org.apache.commons + commons-lang3 + + + com.oracle + ojdbc6 + ${oracle.version} + + + org.codehaus.groovy + groovy-all + true + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + org.apache.maven.plugins + maven-jar-plugin + + + + /config/** + **/MockController.class + + + + + + + + + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + maven-assembly-plugin + + + false + + src/main/build/package.xml + + + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-resources-plugin + 2.6 + + + ${resource.delimiter} + + true + + + + copy-resources + validate + + copy-resources + + + ${project.build.outputDirectory} + + + + src/main/resources + true + + + + + + + + + + src/main/webapp + + + src/main/resources + + + src/main/java + + **/*.xml + + true + + + + + diff --git "a/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" "b/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" new file mode 100644 index 0000000..9656df2 --- /dev/null +++ "b/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" @@ -0,0 +1,4 @@ +@echo off +title 智慧城管 +java -jar guns-web-1.0.0-SNAPSHOT.jar +@pause diff --git a/casic-web/src/main/build/package.xml b/casic-web/src/main/build/package.xml new file mode 100644 index 0000000..68b7576 --- /dev/null +++ b/casic-web/src/main/build/package.xml @@ -0,0 +1,26 @@ + + + package + + zip + + true + + + src/main/bin + / + + + src/main/resources/config + / + + + ${project.build.directory} + / + + *.jar + + + + + \ No newline at end of file diff --git a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java new file mode 100644 index 0000000..0b0c3fb --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java @@ -0,0 +1,35 @@ +package com.casic.missiles; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * SpringBoot方式启动类 + * + * @author casic + * @Date 2017/5/21 12:06 + */ +@SpringBootApplication +@ServletComponentScan +@EnableTransactionManagement(proxyTargetClass = true) +public class CasicApplication { + + private static final Logger logger = LoggerFactory.getLogger(CasicApplication.class); + + public static void main(String[] args){ + SpringApplication.run(CasicApplication.class, args); + logger.info("GunsApplication is success!"); + + } + +} + + + + + + diff --git a/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java new file mode 100644 index 0000000..269025c --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java @@ -0,0 +1,18 @@ +package com.casic.missiles; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.support.SpringBootServletInitializer; + +/** + * Guns Web程序启动类 + * + * @author fengshuonan + * @date 2017-05-21 9:43 + */ +public class CasicServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(CasicApplication.class); + } +} diff --git a/casic-web/src/main/java/com/casic/missiles/controller/MockController.java b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java new file mode 100644 index 0000000..a8285e8 --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java @@ -0,0 +1,83 @@ +package com.casic.missiles.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.log.LogManager; +import com.casic.missiles.core.log.factory.LogTaskFactory; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.core.shiro.ShiroUser; +import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.contant.PermissionContant; +import com.casic.missiles.modular.system.dto.LoginResult; +import org.apache.commons.lang3.StringUtils; +import org.apache.shiro.authc.UsernamePasswordToken; +import org.apache.shiro.subject.Subject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.servlet.http.HttpServletRequest; +import java.security.NoSuchAlgorithmException; +import java.util.Map; + +import static com.casic.missiles.core.support.HttpKit.getIp; + +/** + * 仅为mock登录使用 + */ +@Controller +@RequestMapping("/route") +public class MockController extends BaseController { + private static final Logger logger = LoggerFactory.getLogger(MockController.class); + + /** + * 获取mockToken + */ + @GetMapping("/mockToken") + @ResponseBody + public Object subdepts(HttpServletRequest request, String username, String password) { + ShiroKit.getSession().setAttribute(PermissionContant.IS_APP, false); + SuccessResponseData resultData = new SuccessResponseData(); + if (ToolUtil.isOneEmpty(username, password)) { + username = "admin"; + password = "1111111a"; + } + Subject currentUser = ShiroKit.getSubject(); + + try { + Map key = RSAUtils.genKeyPair(); + ShiroKit.getSession().setAttribute(PermissionContant.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey)); + logger.info("秘钥:".concat(key.get(RSAUtils.RSAPublicKey))); + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + + + UsernamePasswordToken token = new UsernamePasswordToken(username, password.toCharArray()); + token.setRememberMe(false); + try { + currentUser.login(token); + } catch (Exception e) { + e.printStackTrace(); + } + ShiroUser shiroUser = ShiroKit.getUser(); + super.getSession().setAttribute("shiroUser", shiroUser); + super.getSession().setAttribute("username", shiroUser.getAccount()); + + super.getSession().setAttribute(PermissionContant.SESSION_KEY, shiroUser.getId()); + + LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp())); + + ShiroKit.getSession().setAttribute("sessionFlag", true); + resultData.setData(new LoginResult(ShiroKit.getSession().getId().toString(), null)); + resultData.setMessage("登录成功"); + return resultData; + } + +} diff --git a/casic-web/src/main/resources/application.yml b/casic-web/src/main/resources/application.yml new file mode 100644 index 0000000..70cc33b --- /dev/null +++ b/casic-web/src/main/resources/application.yml @@ -0,0 +1,18 @@ +########################################################## +################## 所有profile共有的配置 ################# +########################################################## +spring: + profiles: + active: @activatedProperties@ + datasource: + driver-class-name: com.mysql.jdbc.Driver + jms: + pub-sub-domain: true + aop: + proxy-target-class: true #false为启用jdk默认动态代理,true为cglib动态代理 +################### mybatis-plus配置 ################### +################### guns配置 ################### +casic: + kaptcha-open: true #是否开启登录时验证码 (true/false) + file-upload-path: d:/tmp #文件上传目录(不配置的话为java.io.tmpdir目录) + nologin-urls: /user/login,/kaptcha,/config/baseConfig \ No newline at end of file diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml new file mode 100644 index 0000000..99216e3 --- /dev/null +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -0,0 +1,24 @@ +server: + port: 8083 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://139.198.17.115:3000/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: root + initial-size: 2 + min-idle: 1 +#flowable数据源和多数据源配置 +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /user/login,/user/appLogin,/kaptcha,/config/baseConfig,/route/mockToken,/process/processDiagram,/enterprise2/list,/enterprise2/report,/enterprise3/list,enterprise3/report + file-upload-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\upload\ + file-download-path: D:\tmp\ + producerName: producer + repairName: repair +logging: + level.root: info + level.com.casic: debug + path: logs/ + file: missiles.log + diff --git a/casic-web/src/main/resources/config/application-prod.yml b/casic-web/src/main/resources/config/application-prod.yml new file mode 100644 index 0000000..d54ce16 --- /dev/null +++ b/casic-web/src/main/resources/config/application-prod.yml @@ -0,0 +1,20 @@ +server: + port: 8093 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://139.198.17.115:3000/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: root + initial-size: 2 + min-idle: 1 +#flowable数据源和多数据源配置 +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /user/login,/user/appLogin,/kaptcha,/config/baseConfig,/route/mockToken,/process/processDiagram + file-upload-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\upload +logging: + level.root: info + level.com.casic: debug + path: logs/ + file: missiles.log \ No newline at end of file diff --git a/casic-web/src/main/resources/config/application-test.yml b/casic-web/src/main/resources/config/application-test.yml new file mode 100644 index 0000000..40ec8f5 --- /dev/null +++ b/casic-web/src/main/resources/config/application-test.yml @@ -0,0 +1,21 @@ +server: + port: 8093 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://139.198.17.115:3000/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: root + initial-size: 2 + min-idle: 1 +#flowable数据源和多数据源配置 +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /user/login,/user/appLogin,/kaptcha,/config/baseConfig,/route/mockToken,/process/processDiagram + file-upload-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\upload +logging: + level.root: info + level.com.casic: debug + path: logs/ + file: missiles.log + diff --git a/casic-web/src/main/resources/ehcache.xml b/casic-web/src/main/resources/ehcache.xml new file mode 100644 index 0000000..78c82d8 --- /dev/null +++ b/casic-web/src/main/resources/ehcache.xml @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + diff --git a/casic-web/src/main/resources/excel/contractImp.xlsx b/casic-web/src/main/resources/excel/contractImp.xlsx new file mode 100644 index 0000000..71e3f4a --- /dev/null +++ b/casic-web/src/main/resources/excel/contractImp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/contractList.xlsx b/casic-web/src/main/resources/excel/contractList.xlsx new file mode 100644 index 0000000..19dda44 --- /dev/null +++ b/casic-web/src/main/resources/excel/contractList.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/devTypeImp.xlsx b/casic-web/src/main/resources/excel/devTypeImp.xlsx new file mode 100644 index 0000000..516a5a6 --- /dev/null +++ b/casic-web/src/main/resources/excel/devTypeImp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/deviceTypeList.xlsx b/casic-web/src/main/resources/excel/deviceTypeList.xlsx new file mode 100644 index 0000000..f4121d8 --- /dev/null +++ b/casic-web/src/main/resources/excel/deviceTypeList.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/factoryImp.xlsx b/casic-web/src/main/resources/excel/factoryImp.xlsx new file mode 100644 index 0000000..1054f71 --- /dev/null +++ b/casic-web/src/main/resources/excel/factoryImp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/factoryList.xlsx b/casic-web/src/main/resources/excel/factoryList.xlsx new file mode 100644 index 0000000..71b8ecb --- /dev/null +++ b/casic-web/src/main/resources/excel/factoryList.xlsx Binary files differ diff --git a/casic-web/src/main/resources/logback-spring.xml b/casic-web/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..6e939ec --- /dev/null +++ b/casic-web/src/main/resources/logback-spring.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + ${LOG_PATH}${LOG_FILE} + + %date [%level] [%thread] %logger{60} [%file : %line] %msg%n + + + + ${LOG_PATH}daily/${LOG_FILE}.%d{yyyy-MM-dd}.gz + 30 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..967cb75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +**/target/** +logs/ +casic-web/src/test +*.iml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21fa0d0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# 批产设备管理系统 V1.0.0 + +[^_^]: # (Talk is cheap,Show me the code!) + +## 介绍 +基于SpringBoot,致力于做更简洁的后台管理系统,整合springboot + shiro + mybatis-plus + ! +基于casic代码简洁,注释丰富,上手容易,同时包含多基础模块(用户管理,角色管理,部门管理,字典管理等), +可以直接作为一个后台管理系统的脚手架! 2020目标 `更简洁`,`更规范`! + + +## 其他 +>* [git地址](http://192.168.0.203:8080/gitbucket/git/root/product_device.git) +>* [本地免登地址](http://localhost:50008/route/mockToken) + + + + + diff --git a/casic-device/pom.xml b/casic-device/pom.xml new file mode 100644 index 0000000..f5b11d5 --- /dev/null +++ b/casic-device/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.casic + casic-product-device + 1.0.0-SNAPSHOT + ../pom.xml + + + casic-device + ${pro.version} + jar + casic-device + 设备批产 + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-export-support + 1.0.0-SNAPSHOT + + + + com.casic + casic-admin-support + ${casic.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + commons-io + commons-io + + + + org.apache.commons + commons-lang3 + + + + + + + src/main/java + + **/*.xml + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..793d484 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,95 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Device; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 设备控制器 + * + * @author dev + * @Date 2020-03-27 15:39:05 + */ +@Controller +@RequestMapping("/device") +public class DeviceController extends BaseController { + + + @Autowired + private IDeviceService deviceService; + + + /** + * 获取设备列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return deviceService.selectList(null); + } + + /** + * 获取设备分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = deviceService.selectPage(page,query); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + /** + * 删除设备 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String deviceId) { + deviceService.deleteById(deviceId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("deviceIds") List deviceIds) { + deviceService.deleteBatchIds(deviceIds); + return ResponseData.success(); + } + + /** + * 修改设备 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Device device) { + deviceService.updateById(device); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..cdfd69f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IDeviceService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..77f41b1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java new file mode 100644 index 0000000..ecd033b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -0,0 +1,252 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.ContractDict; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.ContractDict.CONTRACT_ADD_LOG_KEY; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 11:18:50 + */ +@Controller +@RequestMapping("/contract") +public class ContractController extends BaseController { + + + @Autowired + private IContractService contractService; + @Autowired + private IAccountService userService; + @Autowired + private ICommonPermissionService permissionService; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return contractService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1,String keyword2,String keyword3) { + Page page = new PageFactory().defaultPage(); + List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + page.setRecords(contractList); + return new SuccessResponseData(super.packForBT(page)); + } + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object add(Contract contract) { + //合同编号一样,则覆盖 + EntityWrapper contractEntityWrapper = new EntityWrapper<>(); + contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractService.delete(contractEntityWrapper); + Account user=userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.insert(contract); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String contractId) { + contractService.deleteById(contractId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("contractIds") List contractIds) { + contractService.deleteBatchIds(contractIds); + return ResponseData.success(); + } + + /** + * 修改基本信息 + */ + @RequestMapping(value = "/baseUpdate") + @ResponseBody + @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) + public Object baseUpdate(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setContractNumber(contract.getContractNumber()); + contract1.setContractName(contract.getContractName()); + contract1.setContractAmount(contract.getContractAmount()); + contract1.setContractContent(contract.getContractContent()); + contract1.setContractFactory(contract.getContractFactory()); + contract1.setPrincipal(contract.getPrincipal()); + Account user=userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + contractService.updateById(contract1); + return ResponseData.success(); + } + + /** + * 修改内网流程 + */ + @RequestMapping(value = "/flowUpdate") + @ResponseBody + @BussinessLog(value = "修改内网流程信息") + public Object update(Contract contract) { + Contract contract1=contractService.selectById(contract.getId()); + contract1.setExternalCheckApply(contract.getExternalCheckApply()); + contract1.setExternalContractApply(contract.getExternalContractApply()); + contract1.setExternalProjectApply(contract.getExternalProjectApply()); + contractService.updateById(contract1); + return ResponseData.success(); + } + + + /** + * 导出合同列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = contractService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /** + * 批量导入合同列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入合同信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("合同编号", "contractNumber"); + mapper.put("合同名称", "contractName"); + mapper.put("合同乙方", "contractFactory"); + mapper.put("主要内容概述", "contractContent"); + mapper.put("合同金额(万元)", "contractAmount"); + mapper.put("负责人", "principal"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Contract.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Contract contract = row.getResult(); + + if (!ToolUtil.isAllEmpty(contract.getContractNumber(), contract.getContractName())) { + results.add(contract); + } + } + } else { + row.shutdown(); + } + }); + + contractService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 根据id查详情 + * @param id + * @return + */ + @RequestMapping(value = "/selectById") + @ResponseBody + public Object detail(Long id) { + return ResponseData.success(200, + "查询详情成功", + contractService.selectById(id)); + } + + + /** + * 合同下拉接口 + */ + @RequestMapping(value = "/getContract") + @ResponseBody + public Object getContract() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List contractList = contractService.selectList(entityWrapper); + return ResponseData.success(200, "", contractList); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java new file mode 100644 index 0000000..dd04612 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -0,0 +1,134 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-17 11:20:45 + */ +@Controller +@RequestMapping("/payments") +public class PaymentsController extends BaseController { + + + @Autowired + private IPaymentsService paymentsService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String proId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + entityWrapper.orderBy("reorder"); + List paymentsList = paymentsService.selectList(entityWrapper); + paymentsList.forEach(payments -> { + payments.setPaytimeFmt(DateUtil.format(payments.getPaytime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(paymentsList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = paymentsService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增付款流程信息") + public Object add(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), + payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", payments.getProId()); + entityWrapper.eq("reorder", payments.getReorder()); + paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.insert(payments); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String paymentsId) { + paymentsService.deleteById(paymentsId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("paymentsIds") List paymentsIds) { + paymentsService.deleteBatchIds(paymentsIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Payments payments, String paytimeFmt) { + if (paymentsService.validate(payments.getProId(), payments.getMoney(),payments.getReorder())) { + return ResponseData.error("付款金额已超过合同额!"); + } + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? + DateUtil.parseTime(paytimeFmt) : null); + paymentsService.updateById(payments); + return ResponseData.success(); + } + +// /** +// * casic_device详情 +// */ +// @RequestMapping(value = "/detail/{paymentsId}") +// @ResponseBody +// public Object detail(@PathVariable("paymentsId") String paymentsId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(paymentsService.selectById(paymentsId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java new file mode 100644 index 0000000..b24efa2 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductDeviceTypeController.java @@ -0,0 +1,314 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dict.DeviceTypeDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.modular.system.dict.DeviceTypeDict.DEVICETYPE_ADD_LOG_KEY; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:01:30 + */ +@Controller +@RequestMapping("/deviceType") +public class ProductDeviceTypeController extends BaseController { + @Autowired + private ICommonPermissionService permissionService; + + @Resource + private IProductDeviceTypeService productDeviceTypeService; + + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productDeviceTypeService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList", method = RequestMethod.GET) + @ResponseBody + public Object listPage(String keyword1, String keyword2, String keyword3) { + Page page = new PageFactory().defaultPage(); + EntityWrapper entityWrapper = new EntityWrapper<>(); +// DataScope dataScope = permissionService.getCurrUserDataScope(); +// List list = productDeviceTypeService.selectPageDataScope(dataScope, page, +// keyword1, keyword2, keyword3); + if (ToolUtil.isNotEmpty(keyword1)) { + entityWrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + entityWrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + entityWrapper.like("principal", keyword3); + } + page = productDeviceTypeService.selectPage(page, entityWrapper); + List productDeviceTypeList = page.getRecords(); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + page.setRecords(productDeviceTypeList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "增加设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object add(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + productDeviceTypeService.delete(wrapper); + //上传汇总表 + if (null != quotaSummaryFile && + StringUtils.isNotBlank(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.insert(productDeviceType); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productDeviceTypeId) { + productDeviceTypeService.deleteById(productDeviceTypeId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productDeviceTypeIds") List productDeviceTypeIds) { + productDeviceTypeService.deleteBatchIds(productDeviceTypeIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "修改设备类型信息", key = DEVICETYPE_ADD_LOG_KEY, dict = DeviceTypeDict.class) + public Object update(ProductDeviceType productDeviceType, MultipartFile quotaSummaryFile) throws IOException { + //上传汇总表 + if (null != quotaSummaryFile + && ToolUtil.isNotEmpty(quotaSummaryFile.getOriginalFilename())) { + String path = uploadPath + quotaSummaryFile.getOriginalFilename(); + File newFile = new File(path); + quotaSummaryFile.transferTo(newFile); + productDeviceType.setQuotaSummary(path); + } + productDeviceTypeService.updateById(productDeviceType); + return ResponseData.success(); + } + + + /** + * 批量导入设备类型列表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("产品名称", "productName"); + mapper.put("型号", "productModel"); + mapper.put("整机版本号", "machineVersion"); + mapper.put("硬件版本号", "hardwareVersion"); + mapper.put("软件版本号", "softwareVersion"); + mapper.put("设计归档", "designArchive"); + mapper.put("批产归档", "batchFiling"); + mapper.put("状态", "statusFmt"); +// mapper.put("所属组织", "deptid"); + mapper.put("参数", "kpi"); + mapper.put("备注", "descn"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductDeviceType.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductDeviceType deviceType = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(deviceType.getProductName(), deviceType.getMachineVersion())) { + deviceType.setStatus("在产".equals(deviceType.getStatusFmt()) ? 1 : 0); + results.add(deviceType); + } + } + } else { + row.shutdown(); + } + }); + + productDeviceTypeService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + + /** + * 导出设备类型列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + String keyword3 = httpServletRequest.getParameter("keyword3"); + List list = productDeviceTypeService.reportExport(keyword1, keyword2, keyword3); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "deviceTypeList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceTypeList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + + /** + * 参数详情 + */ + @RequestMapping(value = "/kpiDetail") + @ResponseBody + public Object detail(long id) { + return ResponseData.success(200, + "查询参数详情成功", + productDeviceTypeService.selectById(id)); + } + + /** + * 负责人下拉接口 + */ + @RequestMapping(value = "/getUser") + @ResponseBody + public Object detail() { + List userList = permissionService.getAllUsers(""); + return ResponseData.success(200, "", userList); + } + + + /** + * 组织机构接口 + */ + @RequestMapping(value = "/getDept") + @ResponseBody + public Object getDept() { + List depts = permissionService.getAllDepts(""); + return ResponseData.success(200, "", depts); + } + + /*** + *汇总表下载 + * @param response + * @param quotaSummary + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @GetMapping("/summaryDownload") + public void downloadLocal(HttpServletResponse response, String quotaSummary) throws IOException { + if (ToolUtil.isNotEmpty(quotaSummary)) { + FileUtil.downloadLocalFile(response, quotaSummary, "定额汇总表"); + } + } + + + /** + * 在产设备列表下拉接口 + */ + @RequestMapping(value = "/deviceType") + @ResponseBody + public Object getDeviceTypeList() { + + List deviceTypes = productDeviceTypeService.selectDeviceTypeList(); + return ResponseData.success(200, "", deviceTypes); + } + + /** + * 获取在产设备型号下拉接口 + */ + @RequestMapping(value = "/getModel") + @ResponseBody + public Object getModel(String devtypeName) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("status", 1); + entityWrapper.eq("product_name", devtypeName); + List deviceTypes = productDeviceTypeService.selectList(entityWrapper); + return ResponseData.success(200, "", deviceTypes); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java new file mode 100644 index 0000000..cea6e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProductFactoryInformationController.java @@ -0,0 +1,239 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ErrorResponseData; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import com.casic.missiles.modular.system.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.expands.office.excel.ExcelIO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author dev + * @Date 2020-03-10 17:02:24 + */ +@Controller +@RequestMapping("/factory") +public class ProductFactoryInformationController extends BaseController { + @Value("${casic.file-upload-path}") + private String uploadPath; + + @Value("${casic.file-download-path}") + private String downloadPath; + + @Resource + private IProductFactoryInformationService productFactoryInformationService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return productFactoryInformationService.selectList(null); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/pageList") + @ResponseBody + public Object listPage(String keyword1, String keyword2) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + query.like("producting_device", keyword2); + } + page = productFactoryInformationService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //若新增相同的厂家,则删除原来的厂家 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + productFactoryInformationService.delete(wrapper); + //上传设备报价表 + if (ToolUtil.isNotEmpty(equipmentFile) && + ToolUtil.isNotEmpty(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File newFile = FileUtil.createFile(path); + equipmentFile.transferTo(newFile); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.insert(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String productFactoryInformationId) { + productFactoryInformationService.deleteById(productFactoryInformationId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("productFactoryInformationIds") List productFactoryInformationIds) { + productFactoryInformationService.deleteBatchIds(productFactoryInformationIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/mod", method = RequestMethod.POST) + @ResponseBody + public Object update(ProductFactoryInformation productFactoryInformation, + MultipartFile equipmentFile) throws IOException { + //上传设备价格表 + if (null != equipmentFile && + StringUtils.isNotBlank(equipmentFile.getOriginalFilename())) { + String path = uploadPath + equipmentFile.getOriginalFilename(); + File file = FileUtil.createFile(path); + equipmentFile.transferTo(file); + productFactoryInformation.setEquipmentQuotation(path); + } + productFactoryInformationService.updateById(productFactoryInformation); + return ResponseData.success(); + } + + /** + * 导出厂家列表 + */ + @RequestMapping(value = "/listExp") + public void reportExport(HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) throws IOException { + String keyword1 = httpServletRequest.getParameter("keyword1"); + String keyword2 = httpServletRequest.getParameter("keyword2"); + List list = productFactoryInformationService.reportExport(keyword1, keyword2); + FileInputStream fileInputStream = new FileInputStream(downloadPath + + (list != null && list.size() > 0 ? "factoryList.xlsx" : "contentNull.xlsx")); + try { + httpServletResponse.setContentType("application/octet-stream"); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "factoryList.xlsx"); + Map var = new HashMap<>(); + var.put("list", list); + ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpServletResponse.getOutputStream().flush(); + httpServletResponse.getOutputStream().close(); + fileInputStream.close(); + } + } + + /*** + *设备报价表下载 + * @param response + * @param equipmentQuotation + * @throws FileNotFoundException + * @throws UnsupportedEncodingException + */ + @RequestMapping("/priceFileDownload") + public void downloadLocal(HttpServletResponse response, String equipmentQuotation) throws IOException { + if (ToolUtil.isNotEmpty(equipmentQuotation)) { + FileUtil.downloadLocalFile(response, equipmentQuotation, "设备价格表"); + } + } + + + /** + * 批量导入厂家信息 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) throws Exception { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("厂家名称", "name"); + mapper.put("厂家联系人", "personName"); + mapper.put("地址", "address"); + mapper.put("电话", "phone"); + mapper.put("开户行", "bank"); + mapper.put("税号", "taxNumber"); + mapper.put("在产设备", "productingDevice"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductFactoryInformation.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductFactoryInformation productFactoryInformation = row.getResult(); + //过滤厂家名称为空的行 + if (ToolUtil.isNotEmpty(productFactoryInformation.getName())) { + results.add(productFactoryInformation); + } + } + } else { + row.shutdown(); + } + }); + productFactoryInformationService.importDeviceType(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备类型列表失败"); + } + + return ResponseData.success(); + } + + /** + * 厂家下拉接口 + */ + @RequestMapping(value = "/getFactory") + @ResponseBody + public Object getFactory() { + List factoryInformations = + productFactoryInformationService.selectList(null); + return ResponseData.success(200, "", factoryInformations); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java new file mode 100644 index 0000000..509ad80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; + +/** + * 项目管理控制器 + * + * @author dev + * @Date 2020-03-18 16:51:41 + */ +@Controller +@RequestMapping("/project") +public class ProjectController extends BaseController { + + + @Autowired + private IProjectService projectService; + + /** + * 获取项目管理列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return projectService.selectList(null); + } + + /** + * 获取项目管理分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = projectService.selectPage(page, query); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增项目管理 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "增加项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object add(Project project) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("project_name", project.getProjectName()); + projectService.delete(entityWrapper); + projectService.insert(project); + return ResponseData.success(); + } + + /** + * 删除项目管理 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String projectId) { + projectService.deleteById(projectId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("projectIds") List projectIds) { + projectService.deleteBatchIds(projectIds); + return ResponseData.success(); + } + + /** + * 修改项目管理 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑项目信息", key = PROJECT_ADD_LOG_KEY, dict = ProjectDict.class) + public Object update(Project project) { + projectService.updateById(project); + return ResponseData.success(); + } + + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getProject") + @ResponseBody + public Object getProject() { + EntityWrapper entityWrapper = new EntityWrapper<>(); + List projects = projectService.selectList(entityWrapper); + return ResponseData.success(200, "", projects); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java new file mode 100644 index 0000000..98bd639 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ReimburseController.java @@ -0,0 +1,135 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.service.IReimburseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * casic_device控制器 + * + * @author dev + * @Date 2020-03-17 13:18:15 + */ +@Controller +@RequestMapping("/reimburse") +public class ReimburseController extends BaseController { + + + @Autowired + private IReimburseService reimburseService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(long proId) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("pro_id", proId); + wrapper.orderBy("reorder"); + List reimburseList = reimburseService.selectList(wrapper); + reimburseList.forEach(reimburse -> { + reimburse.setPaytimeFmt(DateUtil.format(reimburse.getReimburseTime(), "yyyy-MM-dd HH:mm:ss")); + }); + return ResponseData.success(reimburseList); + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = reimburseService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + @BussinessLog(value = "新增报销流程信息") + public Object add(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", reimburse.getProId()); + entityWrapper.eq("reorder", reimburse.getReorder()); + reimburseService.delete(entityWrapper); + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.insert(reimburse); + return ResponseData.success(); + } + + /** + * 删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String reimburseId) { + reimburseService.deleteById(reimburseId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("reimburseIds") List reimburseIds) { + reimburseService.deleteBatchIds(reimburseIds); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + @BussinessLog(value = "编辑报销流程信息") + public Object update(Reimburse reimburse, String paytimeFmt) { + if (reimburseService.validate(reimburse.getProId(), + reimburse.getMoney(), reimburse.getReorder())) { + return ResponseData.error("报销金额已超过合同额!"); + } + reimburse.setReimburseTime(ToolUtil.isNotEmpty(paytimeFmt) ? + Timestamp.valueOf(paytimeFmt) : null); + reimburseService.updateById(reimburse); + return ResponseData.success(); + } + + /** + * casic_device详情 + */ +// @RequestMapping(value = "/detail/{reimburseId}") +// @ResponseBody +// public Object detail(@PathVariable("reimburseId") String reimburseId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(reimburseService.selectById(reimburseId)); +// return resultData; +// } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java new file mode 100644 index 0000000..59b2097 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * 控制器 + * + * @author dev123 + * @Date 2018-11-19 13:15:14 + */ +@RestController +public class TemplateController extends BaseController { + private static Logger logger = LoggerFactory.getLogger(TemplateController.class); + @Value("${casic.file-download-path}") + private String downloadPath; + + + /** + * 文件模板下载 + */ + @GetMapping("/template/download") + public void doPost(@RequestParam("filename") String filename, HttpServletResponse response) + throws ServletException, IOException { + logger.info(downloadPath); + if (downloadPath.startsWith("/")) { + downloadPath = downloadPath.substring(1); + } + File file = new File(downloadPath, filename); + // 获取文件名 + String fileName = null; + if (filename.contains("/")) { + fileName = filename.substring(filename.lastIndexOf("/") + 1); + } else { + fileName = filename; + } + + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=" + fileName); + response.setContentLength((int) file.length()); + + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + logger.info(e.getMessage()); + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java new file mode 100644 index 0000000..a401c80 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 账户控制器 + * + * @author dev + * @Date 2020-03-23 09:22:25 + */ +@Controller +@RequestMapping("/user") +public class UserController extends BaseController { + + + @Autowired + private IAccountService userService; + + + /** + * 获取账户列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return userService.selectList(null); + } + + /** + * 获取账户分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = userService.selectPage(page,query); + return super.packForBT(page); + } + /** + * 新增账户 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Account user) { + userService.insert(user); + return ResponseData.success(); + } + + /** + * 删除账户 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String userId) { + userService.deleteById(userId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("userIds") List userIds) { + userService.deleteBatchIds(userIds); + return ResponseData.success(); + } + + /** + * 修改账户 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Account user) { + userService.updateById(user); + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java new file mode 100644 index 0000000..9483e3c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/AccountMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java new file mode 100644 index 0000000..394e137 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/BatchMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Batch; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface BatchMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java new file mode 100644 index 0000000..fef972a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ContractMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ContractMapper extends BaseMapper { + + /** + * 分页查询合同列表 + * @param dataScope + * @param page + * @param name + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List findContractList(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("name") String name, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java new file mode 100644 index 0000000..9ee1537 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java new file mode 100644 index 0000000..ddf176b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/PaymentsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface PaymentsMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java new file mode 100644 index 0000000..e053378 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductDeviceTypeMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductDeviceTypeMapper extends BaseMapper { + + /*** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectDataScopePage(@Param("scope") DataScope dataScope, + @Param("page") Page page, + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 获取在产设备类型list + * @return + */ + List selectDeviceTypeList(); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java new file mode 100644 index 0000000..455da51 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProductFactoryInformationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface ProductFactoryInformationMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java new file mode 100644 index 0000000..afdba9d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ProjectMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface ProjectMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java new file mode 100644 index 0000000..31d7997 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/ReimburseMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface ReimburseMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java new file mode 100644 index 0000000..9d87b6a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/TaskMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface TaskMapper extends BaseMapper { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml new file mode 100644 index 0000000..f2a13f4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/Account.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, avatar, account, password, salt, name, birthday, sex, email, phone, roleid, deptid, status, createtime, version, targetid, targetname, password_sync AS passwordSync, IS_SYNC AS isSync, simplename, TARGET_DEPTID_SYNC AS targetDeptidSync, LOGIN_IP AS loginIp, LOGIN_MAC AS loginMac, LAST_TIME AS lastTime, POSITION_LNG AS positionLng, POSITION_LAT AS positionLat + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml new file mode 100644 index 0000000..d9feac5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/BatchMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, batch_number AS batchNumber, batch_count AS batchCount, contract_id AS contractId, task_id AS taskId, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml new file mode 100644 index 0000000..1017207 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + contract_number AS contractNumber, contract_name AS contractName, contract_content AS contractContent, contract_amount AS contractAmount, contract_factory AS contractFactory, external_project_apply AS externalProjectApply, external_contract_apply AS externalContractApply, principal, id,deptid + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..36a3a34 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, batch_id AS batchId, devcode, devtype_id AS devtypeId, is_send AS isSend, longitude, latitude, install_height AS installHeight, iccid, imei, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml new file mode 100644 index 0000000..1404bea --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/PaymentsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, handler, paytime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml new file mode 100644 index 0000000..ad9ff45 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductDeviceTypeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, product_name AS productName, product_model AS productModel, machine_version AS machineVersion, hardware_version AS hardwareVersion, software_version AS softwareVersion, design_archive AS designArchive, batch_filing AS batchFiling, + status, kpi, principal, quota_summary AS quotaSummary, deptid, descn + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml new file mode 100644 index 0000000..927eed9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProductFactoryInformationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, person_name AS personName, address, phone, bank, tax_number AS taxNumber, producting_device AS productingDevice, equipment_quotation AS equipmentQuotation + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml new file mode 100644 index 0000000..4a7ebbb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ProjectMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, project_name AS projectName, project_simple_name AS projectSimpleName, project_manager AS projectManager, descn + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml new file mode 100644 index 0000000..de0585d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ReimburseMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + pro_id AS proId, id, reorder, money, hander, reimburse_time AS reimburseTime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml new file mode 100644 index 0000000..23c1627 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, project_id AS projectId, devtype_id AS devtypeId, devmode_id AS devmodeId, devcount, delivery_time AS deliveryTime, demand, createtime + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java new file mode 100644 index 0000000..da4e2bf --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ContractDict.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * Created by test203 on 2019/5/30. + */ +public class ContractDict extends AbstractDictMap { + + public static final String CONTRACT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + + @Override + public void init() { + + put("contractNumber", "合同编号"); + put("contractName", "合同名称"); + put("contractFactory", "合同乙方"); + put("contractContent", "主要内容概述"); + put("contractAmount", "合同金额(万元)"); + put("principal", "负责人"); + + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java new file mode 100644 index 0000000..3718fb7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceTypeDict.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 设备类型相关日志 + */ +public class DeviceTypeDict extends AbstractDictMap { + public static final String DEVICETYPE_ADD_LOG_KEY = "productName,productModel,machineVersion,statusFmt"; + @Override + public void init() { + put("productName","产品名称"); + put("productModel","型号"); + put("machineVersion","整机版本号"); + put("hardwareVersion","硬件版本号"); + put("softwareVersion","软件版本号"); + put("designArchive","设计归档"); + put("batchFiling","批产归档"); + put("statusFmt","状态"); + put("kpi","参数"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java new file mode 100644 index 0000000..4670df3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/ProjectDict.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dict; + +import com.casic.missiles.core.common.constant.dictmap.base.AbstractDictMap; + +/** + * 集中器相关日志 + */ +public class ProjectDict extends AbstractDictMap { + public static final String PROJECT_ADD_LOG_KEY = "contractNumber,contractName,contractFactory,contractContent,contractAmount,principal"; + @Override + public void init() { + put("projectName","项目名称"); + put("projectSimpleName","项目简称"); + put("projectManager","项目经理"); + } + + @Override + protected void initBeWrapped() { + + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java new file mode 100644 index 0000000..7981a17 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeDto.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dto; + +/** + * 用于设备类型展示 + * @author test203 + * @date 2020-04-03 + */ +public class DeviceTypeDto { + private Long id; + private String productName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java new file mode 100644 index 0000000..f254585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Account.java @@ -0,0 +1,361 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.math.BigDecimal; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; + +/** + *

+ * 管理员表 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@TableName("sys_user") +public class Account extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + /** + * 头像 + */ + private String avatar; + /** + * 账号 + */ + private String account; + /** + * 密码 + */ + private String password; + /** + * md5密码盐 + */ + private String salt; + /** + * 名字 + */ + private String name; + /** + * 生日 + */ + private Date birthday; + /** + * 性别(1:男 2:女) + */ + private String sex; + /** + * 电子邮件 + */ + private String email; + /** + * 电话 + */ + private String phone; + /** + * 角色id + */ + private String roleid; + /** + * 部门id + */ + private Long deptid; + /** + * 状态(1:启用 2:冻结 3:删除) + */ + private String status; + /** + * 创建时间 + */ + private Date createtime; + /** + * 保留字段 + */ + private Integer version; + private String targetid; + private String targetname; + @TableField("password_sync") + private String passwordSync; + @TableField("IS_SYNC") + private Integer isSync; + private String simplename; + /** + * 同步组织ID + */ + @TableField("TARGET_DEPTID_SYNC") + private String targetDeptidSync; + @TableField("LOGIN_IP") + private String loginIp; + @TableField("LOGIN_MAC") + private String loginMac; + /** + * 最后在线时间 + */ + @TableField("LAST_TIME") + private Date lastTime; + /** + * 经度 + */ + @TableField("POSITION_LNG") + private BigDecimal positionLng; + /** + * 纬度 + */ + @TableField("POSITION_LAT") + private BigDecimal positionLat; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt() { + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getRoleid() { + return roleid; + } + + public void setRoleid(String roleid) { + this.roleid = roleid; + } + + public Long getDeptid() { + return deptid; + } + + public void setDeptid(Long deptid) { + this.deptid = deptid; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + public String getTargetid() { + return targetid; + } + + public void setTargetid(String targetid) { + this.targetid = targetid; + } + + public String getTargetname() { + return targetname; + } + + public void setTargetname(String targetname) { + this.targetname = targetname; + } + + public String getPasswordSync() { + return passwordSync; + } + + public void setPasswordSync(String passwordSync) { + this.passwordSync = passwordSync; + } + + public Integer getIsSync() { + return isSync; + } + + public void setIsSync(Integer isSync) { + this.isSync = isSync; + } + + public String getSimplename() { + return simplename; + } + + public void setSimplename(String simplename) { + this.simplename = simplename; + } + + public String getTargetDeptidSync() { + return targetDeptidSync; + } + + public void setTargetDeptidSync(String targetDeptidSync) { + this.targetDeptidSync = targetDeptidSync; + } + + public String getLoginIp() { + return loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getLoginMac() { + return loginMac; + } + + public void setLoginMac(String loginMac) { + this.loginMac = loginMac; + } + + public Date getLastTime() { + return lastTime; + } + + public void setLastTime(Date lastTime) { + this.lastTime = lastTime; + } + + public BigDecimal getPositionLng() { + return positionLng; + } + + public void setPositionLng(BigDecimal positionLng) { + this.positionLng = positionLng; + } + + public BigDecimal getPositionLat() { + return positionLat; + } + + public void setPositionLat(BigDecimal positionLat) { + this.positionLat = positionLat; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", avatar=" + avatar + + ", account=" + account + + ", password=" + password + + ", salt=" + salt + + ", name=" + name + + ", birthday=" + birthday + + ", sex=" + sex + + ", email=" + email + + ", phone=" + phone + + ", roleid=" + roleid + + ", deptid=" + deptid + + ", status=" + status + + ", createtime=" + createtime + + ", version=" + version + + ", targetid=" + targetid + + ", targetname=" + targetname + + ", passwordSync=" + passwordSync + + ", isSync=" + isSync + + ", simplename=" + simplename + + ", targetDeptidSync=" + targetDeptidSync + + ", loginIp=" + loginIp + + ", loginMac=" + loginMac + + ", lastTime=" + lastTime + + ", positionLng=" + positionLng + + ", positionLat=" + positionLat + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java new file mode 100644 index 0000000..81516b7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -0,0 +1,110 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_batch") +public class Batch extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_number") + private Long batchNumber; + @TableField("batch_count") + private Long batchCount; + @TableField("contract_id") + private Long contractId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("task_id") + private Long taskId; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(Long batchNumber) { + this.batchNumber = batchNumber; + } + + public Long getBatchCount() { + return batchCount; + } + + public void setBatchCount(Long batchCount) { + this.batchCount = batchCount; + } + + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Batch{" + + "id=" + id + + ", batchNumber=" + batchNumber + + ", batchCount=" + batchCount + + ", contractId=" + contractId + + ", taskId=" + taskId + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java new file mode 100644 index 0000000..893a1ed --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -0,0 +1,186 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_contract") +public class Contract extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("contract_number") + private String contractNumber; + @TableField("contract_name") + private String contractName; + @TableField("contract_content") + private String contractContent; + @TableField("contract_amount") + private String contractAmount; + @TableField("external_project_apply") + private String externalProjectApply; + @TableField("external_contract_apply") + private String externalContractApply; + @TableField("principal") + private String principal; + @TableField("external_check_apply") + private String externalCheckApply; + @TableField("contract_factory") + private String contractFactory; + @TableField("createtime") + private Date createtime; + @TableField(exist = false) + private String paymentStatus; + @TableField(exist = false) + private String netFlow; + @TableField("deptid") + private String deptid; + + public String getContractNumber() { + return contractNumber; + } + + public void setContractNumber(String contractNumber) { + this.contractNumber = contractNumber; + } + + public String getContractName() { + return contractName; + } + + public void setContractName(String contractName) { + this.contractName = contractName; + } + + public String getContractContent() { + return contractContent; + } + + public void setContractContent(String contractContent) { + this.contractContent = contractContent; + } + + public String getContractAmount() { + return contractAmount; + } + + public void setContractAmount(String contractAmount) { + this.contractAmount = contractAmount; + } + + public String getExternalProjectApply() { + return externalProjectApply; + } + + public void setExternalProjectApply(String externalProjectApply) { + this.externalProjectApply = externalProjectApply; + } + + public String getExternalContractApply() { + return externalContractApply; + } + + public void setExternalContractApply(String externalContractApply) { + this.externalContractApply = externalContractApply; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalCheckApply() { + return externalCheckApply; + } + + public void setExternalCheckApply(String externalCheckApply) { + this.externalCheckApply = externalCheckApply; + } + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public String getContractFactory() { + return contractFactory; + } + + public void setContractFactory(String contractFactory) { + this.contractFactory = contractFactory; + } + + public String getNetFlow() { + return netFlow; + } + + public void setNetFlow(String netFlow) { + this.netFlow = netFlow; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Contract{" + + "contractNumber=" + contractNumber + + ", contractName=" + contractName + + ", contractContent=" + contractContent + + ", contractAmount=" + contractAmount + + ", externalProjectApply=" + externalProjectApply + + ", externalContractApply=" + externalContractApply + + ", principal=" + principal + + ", id=" + id + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java new file mode 100644 index 0000000..8718d91 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -0,0 +1,150 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_device") +public class Device extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("batch_id") + private Long batchId; + private String devcode; + @TableField("devtype_id") + private Long devtypeId; + @TableField("is_send") + private String isSend; + private String longitude; + private String latitude; + @TableField("install_height") + private String installHeight; + private String iccid; + private Long imei; + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBatchId() { + return batchId; + } + + public void setBatchId(Long batchId) { + this.batchId = batchId; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getIsSend() { + return isSend; + } + + public void setIsSend(String isSend) { + this.isSend = isSend; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getInstallHeight() { + return installHeight; + } + + public void setInstallHeight(String installHeight) { + this.installHeight = installHeight; + } + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public Long getImei() { + return imei; + } + + public void setImei(Long imei) { + this.imei = imei; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Device{" + + "id=" + id + + ", batchId=" + batchId + + ", devcode=" + devcode + + ", devtypeId=" + devtypeId + + ", isSend=" + isSend + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", installHeight=" + installHeight + + ", iccid=" + iccid + + ", imei=" + imei + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java new file mode 100644 index 0000000..870c36f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Payments.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_payments") +public class Payments extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @TableField("paytime") + private Date paytime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getPaytime() { + return paytime; + } + + public void setPaytime(Date paytime) { + this.paytime = paytime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Payments{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", paytime=" + paytime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java new file mode 100644 index 0000000..ae6b585 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductDeviceType.java @@ -0,0 +1,285 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_device_type") +public class ProductDeviceType extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 产品名称 + */ + @TableField("product_name") + private String productName; + /** + * 产品型号 + */ + @TableField("product_model") + private String productModel; + + /** + * 通讯版本号 + */ + @TableField("communication_version") + private String communicationVersion; + + /** + * 产品类型 + */ + @TableField("product_type") + private String productType; + + /** + * 整机版本号 + */ + @TableField("machine_version") + private String machineVersion; + /** + * 硬件版本号 + */ + @TableField("hardware_version") + private String hardwareVersion; + /** + * 软件版本号 + */ + @TableField("software_version") + private String softwareVersion; + /** + * 设计归档 + */ + @TableField("design_archive") + private String designArchive; + /** + * 批产归档 + */ + @TableField("batch_filing") + private String batchFiling; + /** + * 状态 + */ + @TableField("status") + private Integer status; + /** + * 性能指标 + */ + @TableField("kpi") + private String kpi; + /** + * 批产负责人 + */ + @TableField("principal") + private String principal; + /** + * 定额汇总表 + */ + @TableField("quota_summary") + private String quotaSummary; + + /** + * 权属部门 + */ + @TableField("deptid") + private String deptid; + + /** + * 备注 + */ + @TableField("descn") + private String descn; + + @TableField("createtime") + private Date createtime; + + + @TableField(exist = false) + private String statusFmt; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } + + public String getMachineVersion() { + return machineVersion; + } + + public void setMachineVersion(String machineVersion) { + this.machineVersion = machineVersion; + } + + public String getHardwareVersion() { + return hardwareVersion; + } + + public void setHardwareVersion(String hardwareVersion) { + this.hardwareVersion = hardwareVersion; + } + + public String getSoftwareVersion() { + return softwareVersion; + } + + public void setSoftwareVersion(String softwareVersion) { + this.softwareVersion = softwareVersion; + } + + public String getDesignArchive() { + return designArchive; + } + + public void setDesignArchive(String designArchive) { + this.designArchive = designArchive; + } + + public String getBatchFiling() { + return batchFiling; + } + + public void setBatchFiling(String batchFiling) { + this.batchFiling = batchFiling; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getKpi() { + return kpi; + } + + public void setKpi(String kpi) { + this.kpi = kpi; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public String getQuotaSummary() { + return quotaSummary; + } + + public void setQuotaSummary(String quotaSummary) { + this.quotaSummary = quotaSummary; + } + + public String getStatusFmt() { + return statusFmt; + } + + public void setStatusFmt(String statusFmt) { + this.statusFmt = statusFmt; + } + + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getProductType() { + return productType; + } + + public void setProductType(String productType) { + this.productType = productType; + } + + public String getCommunicationVersion() { + return communicationVersion; + } + + public void setCommunicationVersion(String communicationVersion) { + this.communicationVersion = communicationVersion; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductDeviceType{" + + "id=" + id + + ", productName=" + productName + + ", productModel=" + productModel + + ", machineVersion=" + machineVersion + + ", hardwareVersion=" + hardwareVersion + + ", softwareVersion=" + softwareVersion + + ", designArchive=" + designArchive + + ", batchFiling=" + batchFiling + + ", status=" + status + + ", kpi=" + kpi + + ", principal=" + principal + + ", quotaSummary=" + quotaSummary + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java new file mode 100644 index 0000000..b0fd924 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductFactoryInformation.java @@ -0,0 +1,187 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@TableName("product_factory_information") +public class ProductFactoryInformation extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 厂家名称 + */ + @TableField("name") + private String name; + /** + * 厂家联系人 + */ + @TableField("person_name") + private String personName; + /** + * 地址 + */ + @TableField("address") + private String address; + /** + * 电话 + */ + @TableField("phone") + private String phone; + /** + * 开户行 + */ + @TableField("bank") + private String bank; + /** + * 税号 + */ + @TableField("tax_number") + private String taxNumber; + /** + * 在产设备 + */ + @TableField("producting_device") + private String productingDevice; + /** + * 设备报价表 + */ + @TableField("equipment_quotation") + private String equipmentQuotation; + + @TableField("createtime") + private Date createtime =new Date(); + + @TableField("deptid") + private String deptid; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPersonName() { + return personName; + } + + public void setPersonName(String personName) { + this.personName = personName; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getBank() { + return bank; + } + + public void setBank(String bank) { + this.bank = bank; + } + + public String getTaxNumber() { + return taxNumber; + } + + public void setTaxNumber(String taxNumber) { + this.taxNumber = taxNumber; + } + + public String getProductingDevice() { + return productingDevice; + } + + public void setProductingDevice(String productingDevice) { + this.productingDevice = productingDevice; + } + + public String getEquipmentQuotation() { + return equipmentQuotation; + } + + public void setEquipmentQuotation(String equipmentQuotation) { + this.equipmentQuotation = equipmentQuotation; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "ProductFactoryInformation{" + + "id=" + id + + ", name=" + name + + ", personName=" + personName + + ", address=" + address + + ", phone=" + phone + + ", bank=" + bank + + ", taxNumber=" + taxNumber + + ", productingDevice=" + productingDevice + + ", equipmentQuotation=" + equipmentQuotation + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java new file mode 100644 index 0000000..00cbc92 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -0,0 +1,99 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@TableName("product_project") +public class Project extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_name") + private String projectName; + @TableField("project_simple_name") + private String projectSimpleName; + @TableField("project_manager") + private String projectManager; + private String descn; + @TableField("createtime") + private Date createtime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectSimpleName() { + return projectSimpleName; + } + + public void setProjectSimpleName(String projectSimpleName) { + this.projectSimpleName = projectSimpleName; + } + + public String getProjectManager() { + return projectManager; + } + + public void setProjectManager(String projectManager) { + this.projectManager = projectManager; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Project{" + + "id=" + id + + ", projectName=" + projectName + + ", projectSimpleName=" + projectSimpleName + + ", projectManager=" + projectManager + + ", descn=" + descn + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java new file mode 100644 index 0000000..658c2e1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Reimburse.java @@ -0,0 +1,126 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@TableName("product_reimburse") +public class Reimburse extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("pro_id") + private Long proId; + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + @TableField("reorder") + private String reorder; + @TableField("money") + private String money; + @TableField("handler") + private String handler; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mi:ss") + @TableField("reimburse_time") + private Date reimburseTime; + @TableField(exist = false) + private String paytimeFmt; + @TableField("createtime") + private Date createtime; + + + public Long getProId() { + return proId; + } + + public void setProId(Long proId) { + this.proId = proId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReorder() { + return reorder; + } + + public void setReorder(String reorder) { + this.reorder = reorder; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getHandler() { + return handler; + } + + public void setHandler(String handler) { + this.handler = handler; + } + + public Date getReimburseTime() { + return reimburseTime; + } + + public void setReimburseTime(Date reimburseTime) { + this.reimburseTime = reimburseTime; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getPaytimeFmt() { + return paytimeFmt; + } + + public void setPaytimeFmt(String paytimeFmt) { + this.paytimeFmt = paytimeFmt; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Reimburse{" + + "proId=" + proId + + ", id=" + id + + ", reorder=" + reorder + + ", money=" + money + + ", handler=" + handler + + ", reimburseTime=" + reimburseTime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java new file mode 100644 index 0000000..987efa7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java @@ -0,0 +1,141 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@TableName("product_task") +public class Task extends Model { + + private static final long serialVersionUID = 1L; + + private Long id; + @TableField("project_id") + private Long projectId; + @TableField("devtype_id") + private Long devtypeId; + @TableField("devmode_id") + private String devmodeId; + private Long devcount; + @TableField("delivery_time") + private Date deliveryTime; + private String demand; + private Date createtime; + @TableField(exist = false) + private String deliveryTimeFmt; + + @TableField(exist = false) + private Long taskId; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getProjectId() { + return projectId; + } + + public void setProjectId(Long projectId) { + this.projectId = projectId; + } + + public Long getDevtypeId() { + return devtypeId; + } + + public void setDevtypeId(Long devtypeId) { + this.devtypeId = devtypeId; + } + + public String getDevmodeId() { + return devmodeId; + } + + public void setDevmodeId(String devmodeId) { + this.devmodeId = devmodeId; + } + + public Long getDevcount() { + return devcount; + } + + public void setDevcount(Long devcount) { + this.devcount = devcount; + } + + public Date getDeliveryTime() { + return deliveryTime; + } + + public void setDeliveryTime(Date deliveryTime) { + this.deliveryTime = deliveryTime; + } + + public String getDemand() { + return demand; + } + + public void setDemand(String demand) { + this.demand = demand; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public String getDeliveryTimeFmt() { + return deliveryTimeFmt; + } + + public void setDeliveryTimeFmt(String deliveryTimeFmt) { + this.deliveryTimeFmt = deliveryTimeFmt; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Task{" + + "id=" + id + + ", projectId=" + projectId + + ", devtypeId=" + devtypeId + + ", devmodeId=" + devmodeId + + ", devcount=" + devcount + + ", deliveryTime=" + deliveryTime + + ", demand=" + demand + + ", createtime=" + createtime + + "}"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java new file mode 100644 index 0000000..7785de5 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IAccountService.java @@ -0,0 +1,23 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.Account; + +/** + *

+ * 管理员表 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +public interface IAccountService extends IService { + + /** + * 根据用户名查用户 + * @param userName + * @return + */ + Account findUserByName(String userName); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java new file mode 100644 index 0000000..d8b5e87 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IContractService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Contract; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IContractService extends IService { + List selectPageList(Page page, String keyword1, String keyword2, String keyword3); + List reportExport(String keyword1, String keyword2, String keyword3); + void importContract( List contracts); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java new file mode 100644 index 0000000..0f2d6e0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IPaymentsService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Payments; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IPaymentsService extends IService { + + boolean validate(Long proId,String money,String reorder); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java new file mode 100644 index 0000000..71490df --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductDeviceTypeService.java @@ -0,0 +1,62 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductDeviceTypeService extends IService { + + /** + * 批量导入设备类型列表 + * @param results + */ + void importDeviceType(List results); + + /** + * 导出列表 + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List reportExport(String keyword1,String keyword2,String keyword3); + + + /** + * 分页查询 + * @param dataScope + * @param page + * @param keyword1 + * @param keyword2 + * @param keyword3 + * @return + */ + List selectPageDataScope(DataScope dataScope, Page page, + String keyword1, String keyword2, String keyword3); + + /** + * 获取在产的设备类型 + * @return + */ + List selectDeviceTypeList(); + + /** + * 根据产品型号获取产品 + * @param deviceModel + * @return + */ + ProductDeviceType selectDeviceTypeByModel(String deviceModel); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java new file mode 100644 index 0000000..455f60a --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProductFactoryInformationService.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +public interface IProductFactoryInformationService extends IService { + /** + * 根据条件导出列表 + * @param keyword1 + * @param keyword2 + * @return + */ + List reportExport(String keyword1, String keyword2); + + + /** + * 导入 + * @param results + */ + void importDeviceType(List results); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java new file mode 100644 index 0000000..3c27bd1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IProjectService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Project; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +public interface IProjectService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java new file mode 100644 index 0000000..ee0a55c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IReimburseService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Reimburse; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +public interface IReimburseService extends IService { + boolean validate(Long proId,String money,String reorder); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java new file mode 100644 index 0000000..09ce653 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/AccountServiceImpl.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.dao.AccountMapper; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.stereotype.Service; + +/** + *

+ * 管理员表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-23 + */ +@Service +public class AccountServiceImpl extends ServiceImpl implements IAccountService { + + @Override + public Account findUserByName(String userName) { + + EntityWrapper userEntityWrapper = new EntityWrapper<>(); + userEntityWrapper.eq("name",userName); + userEntityWrapper.eq("status","1"); + return this.selectOne(userEntityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java new file mode 100644 index 0000000..dd04da0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java @@ -0,0 +1,138 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.shiro.ShiroUser; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ContractMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Account; +import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.service.IPaymentsService; +import com.casic.missiles.modular.system.service.IAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ContractServiceImpl extends ServiceImpl implements IContractService { + @Autowired + private IPaymentsService paymentsService; + @Autowired + private ICommonPermissionService permissionService; + @Autowired + private IAccountService userService; + @Value("${casic.producerName}") + private String producerName; + @Value("${casic.repairName}") + private String repairName; + + @Override + public List selectPageList(Page page, String keyword1, String keyword2, String keyword3) { + +// EntityWrapper query = new EntityWrapper<>(); +// if (ToolUtil.isNotEmpty(keyword1)) { +// query.like("contract_factory", keyword1); +// } +// if (ToolUtil.isNotEmpty(keyword3)) { +// query.like("contract_number", keyword3); +// } +// List contractList = this.selectPage(page, query).getRecords(); +// contractList.forEach(contract -> { +// contract.setPaymentStatus(getPaymentStatus(contract)); +// String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" +// + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" +// + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); +// contract.setNetFlow(netFlowStr); +// +// }); +// return contractList; + + + List contractList = new ArrayList<>(); + DataScope dataScope = permissionService.getCurrUserDataScope(); + ShiroUser currentUser = permissionService.getCurrLoginUser(); + if (currentUser.getRoleTips().contains(producerName) || currentUser.getRoleTips().contains(repairName)) { + contractList = this.baseMapper.findContractList(dataScope,page, currentUser.getName(), keyword1, keyword2, keyword3); + } else { + contractList = this.baseMapper.findContractList(dataScope,page, "", keyword1, keyword2, keyword3); + } + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + + }); + return contractList; + } + + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + + + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + query.like("contractFactory", keyword1); + } + if (ToolUtil.isNotEmpty(keyword3)) { + query.like("contract_number", keyword3); + } + + List contractList = this.selectList(query); + contractList.forEach(contract -> { + contract.setPaymentStatus(getPaymentStatus(contract)); +// permissionService.findInDictByCode("applyStatus") + String netFlowStr = "外协项目申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalProjectApply()) + "\n" + + "外协合同申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalContractApply()) + "\n" + + "外协验收申请:" + permissionService.getDictNameByCode("applyStatus", contract.getExternalCheckApply()); + contract.setNetFlow(netFlowStr); + }); + + return contractList; + } + + @Override + public void importContract(List contracts) { + contracts.forEach(contract -> { + EntityWrapper query = new EntityWrapper<>(); + query.eq("contract_number", contract.getContractNumber()); + this.delete(query); + Account user = userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); + this.insert(contract); + }); + } + + public String getPaymentStatus(Contract contract) { + Map paraMap = new HashMap<>(); + paraMap.put("pro_id", contract.getId()); + List paymentsList = paymentsService.selectByMap(paraMap); + float sum = 0; + for (Payments payments : paymentsList) { + sum = sum + (ToolUtil.isNotEmpty(payments.getMoney()) ? Float.parseFloat(payments.getMoney()) : 0); + } + DecimalFormat df = new DecimalFormat("0"); + return sum + "," + df.format(100 * sum / Float.valueOf(contract.getContractAmount())) + "%"; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java new file mode 100644 index 0000000..0c125d8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PaymentsMapper; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.service.IPaymentsService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class PaymentsServiceImpl extends ServiceImpl implements IPaymentsService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money,String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List paymentsList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Payments payments : paymentsList) { + if(reorder.equals(payments.getReorder())) continue; + total += ToolUtil.isNotEmpty(payments.getMoney()) ? + Long.valueOf(payments.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java new file mode 100644 index 0000000..ac6d447 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductDeviceTypeServiceImpl.java @@ -0,0 +1,93 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductDeviceTypeMapper; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.swing.text.html.parser.Entity; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductDeviceTypeServiceImpl extends ServiceImpl implements IProductDeviceTypeService { + + @Autowired + private ICommonPermissionService permissionService; + + @Transactional(rollbackFor = Exception.class) + @Override + public void importDeviceType(List results) { + + for (ProductDeviceType productDeviceType : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("product_name", productDeviceType.getProductName()); + wrapper.eq("product_model", productDeviceType.getProductModel()); + wrapper.eq("machine_version", productDeviceType.getMachineVersion()); + this.baseMapper.delete(wrapper); + this.baseMapper.insert(productDeviceType); + } + } + + @Override + public List reportExport(String keyword1, String keyword2, String keyword3) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("product_name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.eq("status", keyword2); + } + if (ToolUtil.isNotEmpty(keyword3)) { + wrapper.like("principal", keyword3); + } + List productDeviceTypes = this.selectList(wrapper); + for (ProductDeviceType productDeviceType : productDeviceTypes) { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + } + return productDeviceTypes; + } + + @Override + public List selectPageDataScope(DataScope dataScope, Page page, String keyword1, String keyword2, String keyword3) { + + List productDeviceTypeList = this.baseMapper.selectDataScopePage(dataScope, page, keyword1, keyword2, keyword3); + productDeviceTypeList.forEach(productDeviceType -> { + productDeviceType.setStatusFmt(permissionService.getDictNameByCode("devtypeStatus", + productDeviceType.getStatus().toString())); + }); + return productDeviceTypeList; + + } + + @Override + public List selectDeviceTypeList() { + return this.baseMapper.selectDeviceTypeList(); + } + + + @Override + public ProductDeviceType selectDeviceTypeByModel(String deviceModel) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("product_model",deviceModel); + return this.selectOne(entityWrapper); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java new file mode 100644 index 0000000..efe4410 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProductFactoryInformationServiceImpl.java @@ -0,0 +1,50 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.ProductFactoryInformationMapper; +import com.casic.missiles.modular.system.model.ProductFactoryInformation; +import com.casic.missiles.modular.system.service.IProductFactoryInformationService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-10 + */ +@Service +public class ProductFactoryInformationServiceImpl extends ServiceImpl implements IProductFactoryInformationService { + + @Override + public List reportExport(String keyword1, String keyword2) { + EntityWrapper wrapper = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(keyword1)) { + wrapper.like("name", keyword1); + } + if (ToolUtil.isNotEmpty(keyword2)) { + wrapper.like("producting_device", keyword2); + } + List productFactoryInformations = this.selectList(wrapper); + + return productFactoryInformations; + } + + + @Transactional(rollbackFor=Exception.class) + @Override + public void importDeviceType(List results) { + for (ProductFactoryInformation productFactoryInformation : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("name", productFactoryInformation.getName()); + delete(wrapper); + this.baseMapper.insert(productFactoryInformation); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java new file mode 100644 index 0000000..34655b0 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ProjectServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.dao.ProjectMapper; +import com.casic.missiles.modular.system.service.IProjectService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-18 + */ +@Service +public class ProjectServiceImpl extends ServiceImpl implements IProjectService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java new file mode 100644 index 0000000..5e8b77b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java @@ -0,0 +1,48 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Contract; +import com.casic.missiles.modular.system.model.Payments; +import com.casic.missiles.modular.system.model.Reimburse; +import com.casic.missiles.modular.system.dao.ReimburseMapper; +import com.casic.missiles.modular.system.service.IReimburseService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-17 + */ +@Service +public class ReimburseServiceImpl extends ServiceImpl implements IReimburseService { + + @Resource + private ContractServiceImpl contractService; + + @Override + public boolean validate(Long proId, String money, String reorder) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("pro_id", proId); + List reimburseList = this.selectList(entityWrapper); + long total = Long.valueOf(money); + long contractAmount = 0; + for (Reimburse reimburse : reimburseList) { + if (reorder.equals(reimburse.getReorder())) continue; + total += ToolUtil.isNotEmpty(reimburse.getMoney()) ? + Long.valueOf(reimburse.getMoney()) : 0; + } + Contract contract = contractService.selectById(proId); + contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? + Long.valueOf(contract.getContractAmount()) : 0; + if (total > contractAmount) return true; + return false; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java new file mode 100644 index 0000000..d5ffadb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/DeviceUtil.java @@ -0,0 +1,235 @@ +package com.casic.missiles.modular.system.util; + +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; + +import java.util.*; + +/** + * @author test203 + * @since 2020-04-06 + */ +public class DeviceUtil { + private final static String factoryCode = "20"; + private final static String wellExcludeCode = "4120"; + private final static String loraDevice = "A"; + private static Map devTypeCountHashMap = new HashMap(); + + static { + devTypeCountHashMap.put("电子标识器", 99999L); + devTypeCountHashMap.put("井盖状态监测仪", 65534L); + devTypeCountHashMap.put("灯箱控制器", 65535L); + devTypeCountHashMap.put("单灯控制器(单路)", 65535L); + devTypeCountHashMap.put("单灯控制器(双路)", 65535L); + devTypeCountHashMap.put("数据集中器", 255L); + devTypeCountHashMap.put("有害气体监测仪", 999L); + } + + public static List createDevCodes(ProductDeviceType deviceType, List batches) { + List deviceList = new ArrayList<>(); + try { + if ("电子标识器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 年份XX 批次号XX 编号XXXXX + String devCode = deviceType.getProductType() + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%05d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("井盖状态监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + String wellCode4 = String.format("%04x", i); + if (wellExcludeCode.equals(wellCode4)) { + continue; + } + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + wellCode4; + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("灯箱控制器".equals(deviceType.getProductName()) || + "单灯控制器(单路)".equals(deviceType.getProductName()) || + "单灯控制器(双路)".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("数据集中器".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型XX 厂商代码XX 年份XX 批次序号XX 编号XXXX + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } else if ("有害气体监测仪".equals(deviceType.getProductName())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型WS2000X- 年份XX 批次序号XXXX 编号XXX + String devCode = deviceType.getProductType() + + getYearFmt() + + String.format("%04d", batch.getBatchNumber()) + + String.format("%03d", i); + device.setDevcode(devCode); + device.setBatchId(batch.getId()); + device.setDevtypeId(batch.getDevtypeId()); + deviceList.add(device); + } + } + } + //其他设备类型分lora和非lora版本 + else { + if (loraDevice.equals(deviceType.getCommunicationVersion())) { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 16进制 编号XXXX 16进制 不大于255 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02x", batch.getBatchNumber()) + + String.format("%04x", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } else { + for (Batch batch : batches) { + for (int i = 1; i <= batch.getBatchCount(); i++) { + Device device = new Device(); + //产品类型 XX 厂商代码XX 年份XX 批次序号XX 10进制 编号XXXX 10进制 + String devCode = deviceType.getProductType() + + factoryCode + + getYearFmt() + + String.format("%02d", batch.getBatchNumber()) + + String.format("%04d", i); + device.setDevtypeId(batch.getDevtypeId()); + device.setBatchId(batch.getId()); + device.setDevcode(devCode); + deviceList.add(device); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return deviceList; + } + + + public static Map validate(ProductDeviceType deviceType, List batches, Task task) { + Map resultMap = new HashMap<>(); + boolean success = true; + String msg = ""; + long devSum = null != task ? task.getDevcount() : 0; + long devcount = 0, batchCountMax; + batchCountMax = devTypeCountHashMap.get(deviceType.getProductName()) == null ? + 0 : devTypeCountHashMap.get(deviceType.getProductName()); + if (0 == batchCountMax) { + if (deviceType.getProductModel().indexOf(loraDevice) + == deviceType.getProductModel().length() - 1) { + batchCountMax = 255; + } else { + batchCountMax = 9999; + } + } + for (Batch batch : batches) { + if (batch.getBatchCount() > batchCountMax) { + success = false; + msg = batch.getBatchNumber() + "批次号数量超过了最大范围" + batchCountMax; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + devcount += batch.getBatchCount(); + } + if (devcount != devSum) { + return returnMsg(); + } + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + + public static Map returnMsg() { + Map resultMap = new HashMap<>(); + resultMap.put("success", false); + resultMap.put("msg", "所有批次数量之和与任务中设备数量不一致!"); + return resultMap; + } + + /** + * 获取编码中的年份 + * + * @return + */ + public static String getYearFmt() { + + return DateUtil.format(new Date(), "yyyy").substring(2); + } + + + /** + * 比较2个map + * + * @param batchMap + * @param batchMap1 + * @return + */ + public static boolean equalMap(Map batchMap, Map batchMap1) { + if (batchMap.size() != batchMap1.size()) { + return false; + } + Iterator iter1 = batchMap.keySet().iterator(); + while (iter1.hasNext()) { + Long map1key = iter1.next(); + String map1value = batchMap.get(map1key).toString(); + String map2value = batchMap1.get(map1key).toString(); + if (!map1value.equals(map2value)) { + return false; + } + } + return true; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java new file mode 100644 index 0000000..33c3535 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java @@ -0,0 +1,43 @@ +package com.casic.missiles.modular.system.util; + +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; + +public class FileUtil { + public static File createFile(String path) throws IOException { + File file = new File(path); + if (!file.exists()) { + file.getParentFile().mkdirs(); + file.createNewFile(); + } + return file; + } + + + public static void downloadLocalFile(HttpServletResponse response,String path, String fileName) throws IOException { + File file = new File(path); + // 设置以流的形式下载文件,这样可以实现任意格式的文件下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", "attachment; filename=\"" + URLEncoder.encode(fileName, "UTF-8") + "\""); + response.setContentLength((int) file.length()); + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int readTmp = 0; + while ((readTmp = fis.read(buffer)) != -1) { + response.getOutputStream().write(buffer, 0, readTmp); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java new file mode 100644 index 0000000..341d3d1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.task.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.task.service.IBatchService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * 批次控制器 + * + * @author dev + * @Date 2020-03-27 15:29:55 + */ +@Controller +@RequestMapping("/batch") +public class BatchController extends BaseController { + + + @Autowired + private IBatchService batchService; + + + /** + * 获取批次列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return batchService.selectList(null); + } + + /** + * 获取批次分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = batchService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增批次并生成设备 + */ + @RequestMapping(value = "/add") + @ResponseBody + @Transactional + public Object add(@RequestBody List batches, Task task) { + + return batchService.addBatchAndDevices(batches,task); + + } + + /** + * 删除批次 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String batchId) { + batchService.deleteById(batchId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("batchIds") List batchIds) { + batchService.deleteBatchIds(batchIds); + return ResponseData.success(); + } + + /** + * 修改批次 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Batch batch) { + batchService.updateById(batch); + return ResponseData.success(); + } + + + /** + * 根据设备类型id + * 查找批次号 + */ + @RequestMapping(value = "/getBatchNumber") + @ResponseBody + public Object getBatchNumber(Long devtypeId) { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.orderBy("id", false); + Batch batch = batchService.selectOne(entityWrapper); + return ResponseData.success(200, "", batch != null ? batch.getBatchNumber() + 1 : 1); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java new file mode 100644 index 0000000..f463168 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java @@ -0,0 +1,102 @@ +package com.casic.missiles.modular.task.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.task.service.ITaskService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * 任务控制器 + * + * @author dev + * @Date 2020-03-27 15:28:26 + */ +@Controller +@RequestMapping("/task") +public class TaskController extends BaseController { + + + @Autowired + private ITaskService taskService; + + + /** + * 获取任务列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return taskService.selectList(null); + } + + /** + * 获取任务分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + page = taskService.selectPage(page, query); + return super.packForBT(page); + } + + /** + * 新增任务 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + taskService.insert(task); + return ResponseData.success(); + } + + /** + * 删除任务 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam String taskId) { + taskService.deleteById(taskId); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestParam("taskIds") List taskIds) { + taskService.deleteBatchIds(taskIds); + return ResponseData.success(); + } + + /** + * 修改任务 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Task task, String deliveryTimeFmt) { + task.setDeliveryTime(ToolUtil.isNotEmpty(deliveryTimeFmt) ? + DateUtil.parse(deliveryTimeFmt, "yyyy-MM-dd") : null); + taskService.updateById(task); + return ResponseData.success(); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java new file mode 100644 index 0000000..04c7ef8 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/IBatchService.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.task.service; + +import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Task; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface IBatchService extends IService { + + /** + * 添加批次和生成设备 + * @param batches + * @param task + * @return + */ + ResponseData addBatchAndDevices(List batches, Task task); +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java new file mode 100644 index 0000000..50e1d37 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.task.service; + +import com.casic.missiles.modular.system.model.Task; +import com.baomidou.mybatisplus.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +public interface ITaskService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java new file mode 100644 index 0000000..a435e46 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.dao.BatchMapper; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.ProductDeviceType; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.util.DeviceUtil; +import com.casic.missiles.modular.task.service.IBatchService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class BatchServiceImpl extends ServiceImpl implements IBatchService { + + @Autowired + private IProductDeviceTypeService deviceTypeService; + @Autowired + private IDeviceService deviceService; + + @Transactional(rollbackFor=Exception.class) + @Override + public ResponseData addBatchAndDevices(List batches, Task task) { + //提交前先验证是否已经存在,若存在且批次号或每批数量改变先删除 + try { + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("task_id", task.getTaskId()); + List batchList = this.selectList(entityWrapper); + Map batchMap= new HashMap<>(); + Map batchMap1= new HashMap<>(); + List batchIdlist = new ArrayList<>(); + for (Batch batch : batches) { + batchMap.put(batch.getBatchNumber(),batch.getBatchCount()); + batch.setTaskId(task.getTaskId()); + batch.setDevtypeId(task.getDevtypeId()); + batchIdlist.add(batch.getId()); + } + for (Batch batch : batchList) { + batchMap1.put(batch.getBatchNumber(),batch.getBatchCount()); + } + + //若批次号和数量不变只更新批次表 + if (DeviceUtil.equalMap(batchMap, batchMap1)) { + this.insertOrUpdateBatch(batches); + } + //若批次号和数量更新,更新设备表(删除批次相关的设备后,写入新的设备) + else { + + //验证设备数量是否合格 + ProductDeviceType deviceType = deviceTypeService.selectDeviceTypeByModel(task.getDevmodeId()); + Map resultMap = DeviceUtil.validate(deviceType, batches, task); + if (!Boolean.valueOf(resultMap.get("success").toString())) { + return ResponseData.error(400, resultMap.get("msg").toString()); + } + //删除批次 + EntityWrapper batchEntityWrapper = new EntityWrapper<>(); + batchEntityWrapper.eq("task_id", task.getTaskId()); + this.delete(batchEntityWrapper); + //删除设备 + EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); + deviceEntityWrapper.in("batch_id", batchIdlist); + deviceEntityWrapper.eq("devtype_id",task.getDevtypeId()); + deviceService.delete(deviceEntityWrapper); + + //写入批次 + this.insertBatch(batches); + //写入设备 + List deviceList = DeviceUtil.createDevCodes(deviceType, batches); + deviceService.insertBatch(deviceList); + } + } catch (Exception e) { + e.printStackTrace(); + } + return ResponseData.success(); + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java new file mode 100644 index 0000000..fac60bb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.task.service.impl; + +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.dao.TaskMapper; +import com.casic.missiles.modular.task.service.ITaskService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2020-03-27 + */ +@Service +public class TaskServiceImpl extends ServiceImpl implements ITaskService { + +} diff --git a/casic-web/pom.xml b/casic-web/pom.xml new file mode 100644 index 0000000..f9f1c84 --- /dev/null +++ b/casic-web/pom.xml @@ -0,0 +1,300 @@ + + + 4.0.0 + + com.casic + casic-product-device + ../pom.xml + 1.0.0-SNAPSHOT + + casic-web + ${pro.version} + jar + casic-web + casic web启动入口 + + + + dev + + true + + + dev + true + 3600 + 3600 + + + + + test + + test + false + 180 + 180 + + + + + prod + + prod + true + 3600 + 3600 + + + + + + + + + + + + + com.casic + casic-core + ${casic.version} + + + com.casic + casic-admin-support + ${casic.version} + + + com.casic + casic-admin-core + ${casic.version} + + + com.casic + casic-admin-area + ${casic.version} + + + + + + + + + + com.casic + casic-device + ${pro.version} + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-cache + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + org.springframework.boot + spring-boot-devtools + true + + + + + + org.apache.shiro + shiro-core + + + slf4j-api + org.slf4j + + + + + org.apache.shiro + shiro-spring + + + org.apache.shiro + shiro-ehcache + + + slf4j-api + org.slf4j + + + + + org.ehcache + ehcache + ${ehcache.version} + + + + commons-io + commons-io + + + com.github.penggle + kaptcha + + + com.google.zxing + core + + + com.ibeetl + beetl + + + org.apache.commons + commons-lang3 + + + com.oracle + ojdbc6 + ${oracle.version} + + + org.codehaus.groovy + groovy-all + true + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + org.apache.maven.plugins + maven-jar-plugin + + + + /config/** + **/MockController.class + + + + + + + + + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + maven-assembly-plugin + + + false + + src/main/build/package.xml + + + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-resources-plugin + 2.6 + + + ${resource.delimiter} + + true + + + + copy-resources + validate + + copy-resources + + + ${project.build.outputDirectory} + + + + src/main/resources + true + + + + + + + + + + src/main/webapp + + + src/main/resources + + + src/main/java + + **/*.xml + + true + + + + + diff --git "a/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" "b/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" new file mode 100644 index 0000000..9656df2 --- /dev/null +++ "b/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" @@ -0,0 +1,4 @@ +@echo off +title 智慧城管 +java -jar guns-web-1.0.0-SNAPSHOT.jar +@pause diff --git a/casic-web/src/main/build/package.xml b/casic-web/src/main/build/package.xml new file mode 100644 index 0000000..68b7576 --- /dev/null +++ b/casic-web/src/main/build/package.xml @@ -0,0 +1,26 @@ + + + package + + zip + + true + + + src/main/bin + / + + + src/main/resources/config + / + + + ${project.build.directory} + / + + *.jar + + + + + \ No newline at end of file diff --git a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java new file mode 100644 index 0000000..0b0c3fb --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java @@ -0,0 +1,35 @@ +package com.casic.missiles; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * SpringBoot方式启动类 + * + * @author casic + * @Date 2017/5/21 12:06 + */ +@SpringBootApplication +@ServletComponentScan +@EnableTransactionManagement(proxyTargetClass = true) +public class CasicApplication { + + private static final Logger logger = LoggerFactory.getLogger(CasicApplication.class); + + public static void main(String[] args){ + SpringApplication.run(CasicApplication.class, args); + logger.info("GunsApplication is success!"); + + } + +} + + + + + + diff --git a/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java new file mode 100644 index 0000000..269025c --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java @@ -0,0 +1,18 @@ +package com.casic.missiles; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.support.SpringBootServletInitializer; + +/** + * Guns Web程序启动类 + * + * @author fengshuonan + * @date 2017-05-21 9:43 + */ +public class CasicServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(CasicApplication.class); + } +} diff --git a/casic-web/src/main/java/com/casic/missiles/controller/MockController.java b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java new file mode 100644 index 0000000..a8285e8 --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java @@ -0,0 +1,83 @@ +package com.casic.missiles.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.log.LogManager; +import com.casic.missiles.core.log.factory.LogTaskFactory; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.core.shiro.ShiroUser; +import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.contant.PermissionContant; +import com.casic.missiles.modular.system.dto.LoginResult; +import org.apache.commons.lang3.StringUtils; +import org.apache.shiro.authc.UsernamePasswordToken; +import org.apache.shiro.subject.Subject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.servlet.http.HttpServletRequest; +import java.security.NoSuchAlgorithmException; +import java.util.Map; + +import static com.casic.missiles.core.support.HttpKit.getIp; + +/** + * 仅为mock登录使用 + */ +@Controller +@RequestMapping("/route") +public class MockController extends BaseController { + private static final Logger logger = LoggerFactory.getLogger(MockController.class); + + /** + * 获取mockToken + */ + @GetMapping("/mockToken") + @ResponseBody + public Object subdepts(HttpServletRequest request, String username, String password) { + ShiroKit.getSession().setAttribute(PermissionContant.IS_APP, false); + SuccessResponseData resultData = new SuccessResponseData(); + if (ToolUtil.isOneEmpty(username, password)) { + username = "admin"; + password = "1111111a"; + } + Subject currentUser = ShiroKit.getSubject(); + + try { + Map key = RSAUtils.genKeyPair(); + ShiroKit.getSession().setAttribute(PermissionContant.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey)); + logger.info("秘钥:".concat(key.get(RSAUtils.RSAPublicKey))); + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + + + UsernamePasswordToken token = new UsernamePasswordToken(username, password.toCharArray()); + token.setRememberMe(false); + try { + currentUser.login(token); + } catch (Exception e) { + e.printStackTrace(); + } + ShiroUser shiroUser = ShiroKit.getUser(); + super.getSession().setAttribute("shiroUser", shiroUser); + super.getSession().setAttribute("username", shiroUser.getAccount()); + + super.getSession().setAttribute(PermissionContant.SESSION_KEY, shiroUser.getId()); + + LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp())); + + ShiroKit.getSession().setAttribute("sessionFlag", true); + resultData.setData(new LoginResult(ShiroKit.getSession().getId().toString(), null)); + resultData.setMessage("登录成功"); + return resultData; + } + +} diff --git a/casic-web/src/main/resources/application.yml b/casic-web/src/main/resources/application.yml new file mode 100644 index 0000000..70cc33b --- /dev/null +++ b/casic-web/src/main/resources/application.yml @@ -0,0 +1,18 @@ +########################################################## +################## 所有profile共有的配置 ################# +########################################################## +spring: + profiles: + active: @activatedProperties@ + datasource: + driver-class-name: com.mysql.jdbc.Driver + jms: + pub-sub-domain: true + aop: + proxy-target-class: true #false为启用jdk默认动态代理,true为cglib动态代理 +################### mybatis-plus配置 ################### +################### guns配置 ################### +casic: + kaptcha-open: true #是否开启登录时验证码 (true/false) + file-upload-path: d:/tmp #文件上传目录(不配置的话为java.io.tmpdir目录) + nologin-urls: /user/login,/kaptcha,/config/baseConfig \ No newline at end of file diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml new file mode 100644 index 0000000..99216e3 --- /dev/null +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -0,0 +1,24 @@ +server: + port: 8083 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://139.198.17.115:3000/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: root + initial-size: 2 + min-idle: 1 +#flowable数据源和多数据源配置 +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /user/login,/user/appLogin,/kaptcha,/config/baseConfig,/route/mockToken,/process/processDiagram,/enterprise2/list,/enterprise2/report,/enterprise3/list,enterprise3/report + file-upload-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\upload\ + file-download-path: D:\tmp\ + producerName: producer + repairName: repair +logging: + level.root: info + level.com.casic: debug + path: logs/ + file: missiles.log + diff --git a/casic-web/src/main/resources/config/application-prod.yml b/casic-web/src/main/resources/config/application-prod.yml new file mode 100644 index 0000000..d54ce16 --- /dev/null +++ b/casic-web/src/main/resources/config/application-prod.yml @@ -0,0 +1,20 @@ +server: + port: 8093 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://139.198.17.115:3000/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: root + initial-size: 2 + min-idle: 1 +#flowable数据源和多数据源配置 +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /user/login,/user/appLogin,/kaptcha,/config/baseConfig,/route/mockToken,/process/processDiagram + file-upload-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\upload +logging: + level.root: info + level.com.casic: debug + path: logs/ + file: missiles.log \ No newline at end of file diff --git a/casic-web/src/main/resources/config/application-test.yml b/casic-web/src/main/resources/config/application-test.yml new file mode 100644 index 0000000..40ec8f5 --- /dev/null +++ b/casic-web/src/main/resources/config/application-test.yml @@ -0,0 +1,21 @@ +server: + port: 8093 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://139.198.17.115:3000/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: root + initial-size: 2 + min-idle: 1 +#flowable数据源和多数据源配置 +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /user/login,/user/appLogin,/kaptcha,/config/baseConfig,/route/mockToken,/process/processDiagram + file-upload-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\upload +logging: + level.root: info + level.com.casic: debug + path: logs/ + file: missiles.log + diff --git a/casic-web/src/main/resources/ehcache.xml b/casic-web/src/main/resources/ehcache.xml new file mode 100644 index 0000000..78c82d8 --- /dev/null +++ b/casic-web/src/main/resources/ehcache.xml @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + diff --git a/casic-web/src/main/resources/excel/contractImp.xlsx b/casic-web/src/main/resources/excel/contractImp.xlsx new file mode 100644 index 0000000..71e3f4a --- /dev/null +++ b/casic-web/src/main/resources/excel/contractImp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/contractList.xlsx b/casic-web/src/main/resources/excel/contractList.xlsx new file mode 100644 index 0000000..19dda44 --- /dev/null +++ b/casic-web/src/main/resources/excel/contractList.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/devTypeImp.xlsx b/casic-web/src/main/resources/excel/devTypeImp.xlsx new file mode 100644 index 0000000..516a5a6 --- /dev/null +++ b/casic-web/src/main/resources/excel/devTypeImp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/deviceTypeList.xlsx b/casic-web/src/main/resources/excel/deviceTypeList.xlsx new file mode 100644 index 0000000..f4121d8 --- /dev/null +++ b/casic-web/src/main/resources/excel/deviceTypeList.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/factoryImp.xlsx b/casic-web/src/main/resources/excel/factoryImp.xlsx new file mode 100644 index 0000000..1054f71 --- /dev/null +++ b/casic-web/src/main/resources/excel/factoryImp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/factoryList.xlsx b/casic-web/src/main/resources/excel/factoryList.xlsx new file mode 100644 index 0000000..71b8ecb --- /dev/null +++ b/casic-web/src/main/resources/excel/factoryList.xlsx Binary files differ diff --git a/casic-web/src/main/resources/logback-spring.xml b/casic-web/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..6e939ec --- /dev/null +++ b/casic-web/src/main/resources/logback-spring.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + ${LOG_PATH}${LOG_FILE} + + %date [%level] [%thread] %logger{60} [%file : %line] %msg%n + + + + ${LOG_PATH}daily/${LOG_FILE}.%d{yyyy-MM-dd}.gz + 30 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..fcab688 --- /dev/null +++ b/pom.xml @@ -0,0 +1,206 @@ + + 4.0.0 + com.casic + casic-product-device + 1.0.0-SNAPSHOT + casic-product-device + pom + + casic-web + casic-device + + + + org.springframework.boot + spring-boot-starter-parent + 1.5.9.RELEASE + + + + UTF-8 + UTF-8 + 1.8 + 1.0.0-SNAPSHOT + 1.0.0-SNAPSHOT + 1.0.5 + 1.4.0 + 2.1.8 + 1.2.44 + 2.5 + 1.7 + 2.3.2 + 3.3.1 + 3.2.1 + 1.1.6 + 2.7.15 + 2.2.2 + 3.6 + 2.6.11 + 5.1.38 + 0.9.0 + 4.0.0 + 11.1.0.7.0 + + + + + + + org.springframework.boot + spring-boot-dependencies + 1.5.9.RELEASE + pom + import + + + + com.casic + casic-admin-support + ${casic.version} + + + + com.casic + casic-core + ${casic.version} + + + + + + + + + + + + + + + org.apache.shiro + shiro-core + ${shiro.version} + + + org.apache.shiro + shiro-spring + ${shiro.version} + + + org.apache.shiro + shiro-ehcache + ${shiro.version} + + + mysql + mysql-connector-java + ${mysql-connector-java.version} + + + com.baomidou + mybatis-plus + ${mybatis-plus.version} + + + com.alibaba + druid + ${druid.version} + + + com.alibaba + fastjson + ${fastjson.version} + + + + commons-io + commons-io + ${commons.io.version} + + + com.github.penggle + kaptcha + ${kaptcha.version} + + + org.ehcache + ehcache + ${ehcache.version} + + + com.google.zxing + core + ${zxing.version} + + + org.apache.velocity + velocity + ${velocity.version} + + + com.ibeetl + beetl + ${beetl.version} + + + io.springfox + springfox-swagger2 + ${swagger.version} + + + io.springfox + springfox-swagger-ui + ${swagger.version} + + + org.apache.commons + commons-lang3 + ${commons-lang3.version} + + + net.sf.ehcache + ehcache-core + ${ehcache.core.version} + + + io.jsonwebtoken + jjwt + ${jwt.version} + + + cn.hutool + hutool-core + ${hutool.version} + + + cn.hutool + hutool-http + ${hutool.version} + + + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.1 + + ${java.version} + ${java.version} + + + + org.springframework.boot + spring-boot-maven-plugin + 1.5.9.RELEASE + + + + + + \ No newline at end of file